PHPackages                             arlin2050/dcmph - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. arlin2050/dcmph

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

arlin2050/dcmph
===============

A php interface to offis's dcmtk

021PHP

Since Jun 9Pushed 10y ago1 watchersCompare

[ Source](https://github.com/arlin2050/DcmPh)[ Packagist](https://packagist.org/packages/arlin2050/dcmph)[ RSS](/packages/arlin2050-dcmph/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

DcmPh
=====

[](#dcmph)

A library/wrapper for findscu.

What can I use it for ?
-----------------------

[](#what-can-i-use-it-for-)

It is possible to use these libraries to retrieve information from a PACS. You can read tests/simple\_test.php to see how easy it is accessing your data from your PACS. Just an example:

```
use HalSoft\DcmPh\Query\PatientQuery;
use HalSoft\DcmPh\Query\StudyQuery;

$called_aet = "TESTSERVER";
$pacs_ip = "www.dicomserver.co.uk";
$pacs_port = 104;
$calling_aet = "LOCALAET";

//Create a new patient query
$pq = new PatientQuery($called_aet, $pacs_ip, $pacs_port, $calling_aet);
//Find all patients who's name's like JOHN^
$patients = $pq->findPatientsByName('JOHN^');

//Create a new study query
$stq = new StudyQuery($called_aet, $pacs_ip, $pacs_port, $calling_aet);
//Find all studies for the patient whose id is 2222.2222
$studies = $stq->findStudiesByPatientId('2222.2222');
```

In this way it is easy to retrieve the information needed to retrieve wado objects:

- studyUID (StudyInstanceUID)
- seriesUID (SeriesInstanceUID)
- objectUID (SOPInstanceUID)

Disclaimer
----------

[](#disclaimer)

This library is really at its early stage. HANDLE WITH CARE!

If you want to use it, you must have findscu and dcm2xml from  and available in your path.

The library must have write permission (to save dcm files).

Todo's
------

[](#todos)

The library use dcm2xml and simple-xml to read dicom files.

I think that I the near future it'll use (nanodicom)\[\] to read dicom files. But I'm not sure for two reasons:

- the last commit is aged 1 year
- nanodicom is quite complete, it uses a huge and complete Dicom dictionary while I'd prefere to keep DcmPh....lighter

License
-------

[](#license)

This library is licensed under the MIT license.

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 70% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/dfe1ef6533e4ef46ace80ee84f2649674b88c7d1103e219b4b31027644058229?d=identicon)[arlin2050](/maintainers/arlin2050)

---

Top Contributors

[![lucasaba](https://avatars.githubusercontent.com/u/206325?v=4)](https://github.com/lucasaba "lucasaba (7 commits)")[![arlin2050](https://avatars.githubusercontent.com/u/2535927?v=4)](https://github.com/arlin2050 "arlin2050 (3 commits)")

### Embed Badge

![Health badge](/badges/arlin2050-dcmph/health.svg)

```
[![Health](https://phpackages.com/badges/arlin2050-dcmph/health.svg)](https://phpackages.com/packages/arlin2050-dcmph)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
