Skip to content

Commit b16035d

Browse files
committed
Fix workflow: replace problematic find command with safer file deletion
1 parent f313efd commit b16035d

28 files changed

Lines changed: 883 additions & 293 deletions

.github/workflows/deploy-to-repos.yml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,13 @@ jobs:
5353
- name: Sync R4 content
5454
run: |
5555
# Remove all content from target repo except .git
56-
find ./r4-repo -mindepth 1 -name '.git' -prune -o -type f -delete
57-
find ./r4-repo -mindepth 1 -name '.git' -prune -o -type d -empty -delete
56+
find ./r4-repo -mindepth 1 -maxdepth 1 ! -name '.git' -exec rm -rf {} +
5857
5958
# Copy imaging-r4 content to root of target repository
6059
cp -r ./igs/imaging-r4/* ./r4-repo/
6160
62-
# Ensure hidden files are copied too
63-
cp -r ./igs/imaging-r4/.* ./r4-repo/ 2>/dev/null || true
61+
# Ensure hidden files are copied too (excluding .git)
62+
find ./igs/imaging-r4 -name ".*" -not -name ".git" -not -name "." -not -name ".." -exec cp -r {} ./r4-repo/ \; 2>/dev/null || true
6463
6564
- name: Commit and push R4 changes
6665
working-directory: ./r4-repo
@@ -123,14 +122,13 @@ jobs:
123122
- name: Sync R5 content
124123
run: |
125124
# Remove all content from target repo except .git
126-
find ./r5-repo -mindepth 1 -name '.git' -prune -o -type f -delete
127-
find ./r5-repo -mindepth 1 -name '.git' -prune -o -type d -empty -delete
125+
find ./r5-repo -mindepth 1 -maxdepth 1 ! -name '.git' -exec rm -rf {} +
128126
129127
# Copy imaging-r5 content to root of target repository
130128
cp -r ./igs/imaging-r5/* ./r5-repo/
131129
132-
# Ensure hidden files are copied too
133-
cp -r ./igs/imaging-r5/.* ./r5-repo/ 2>/dev/null || true
130+
# Ensure hidden files are copied too (excluding .git)
131+
find ./igs/imaging-r5 -name ".*" -not -name ".git" -not -name "." -not -name ".." -exec cp -r {} ./r5-repo/ \; 2>/dev/null || true
134132
135133
- name: Commit and push R5 changes
136134
working-directory: ./r5-repo

igs/imaging-r4/FHIR-eu-imaging-r4.xml

Lines changed: 199 additions & 0 deletions
Large diffs are not rendered by default.

igs/imaging-r4/input/includes/fhir-resources.md

Lines changed: 157 additions & 157 deletions
Large diffs are not rendered by default.

igs/imaging-r4/input/includes/variable-definitions.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
2+
3+
{% assign hl7EuBase = "[HL7 EU Base](https://hl7.eu/fhir/base/)" %}
4+
{% assign hl7EuMpd = "[HL7 EU MPD](https://hl7.eu/fhir/mpd/)" %}
5+
6+
7+
18
{% assign ehnImaging = "[eHN Imaging Studies and Reports](https://health.ec.europa.eu/publications/ehn-guidelines-medical-imaging-studies-and-reports_en)" %}
29
{% assign ehnImagingGuidelines = "[eHN Imaging Studies and Reports](https://health.ec.europa.eu/publications/ehn-guidelines-medical-imaging-studies-and-reports_en) guidelines" %}
310
{% assign ehnImagingHtml = '<a href="https://health.ec.europa.eu/publications/ehn-guidelines-medical-imaging-studies-and-reports_en">eHN Imaging Studies and Reports</a>' %}
@@ -10,12 +17,12 @@
1017
{% assign iheIid = "[IHE-IID](https://www.ihe.net/uploadedFiles/Documents/Radiology/IHE_RAD_Suppl_IID.pdf)" %}
1118
{% assign iheIDR = "[IHE-IDR](https://build.fhir.org/ig/IHE/RAD.IDR/)" %}
1219

13-
{% assign hl7EuBase = "[HL7 EU Base](https://build.fhir.org/ig/hl7-eu/base-r5/)" %}
14-
{% assign hl7EuExtensions = "[HL7 Europe Extensions](https://build.fhir.org/ig/hl7-eu/extensions-r5/)" %}
20+
{% assign hl7EuExtensions = "[HL7 Europe Extensions](https://hl7.eu/fhir/extensions/)" %}
1521
{% assign hl7EuLabs = "[HL7 EU Laboratory Reports](https://build.fhir.org/ig/hl7-eu/laboratory/branches/master/index.html)" %}
1622
{% assign hl7EuHdr = "[HL7 EU Hospital Discharge Reports](https://build.fhir.org/ig/hl7-eu/hdr/index.html)" %}
1723
{% assign hl7EuEps = "[HL7 Europe Patient Summary](https://build.fhir.org/ig/hl7-eu/eps/)" %}
1824

25+
1926
{% assign ArgImg = "[Argonaut Imaging](https://github.com/sync-for-science/imaging)" %}
2027

2128
{% assign DICOMwebWado = "[DICOMweb-WADO](https://www.dicomstandard.org/using/dicomweb/retrieve-wado-rs-and-wado-uri/)" %}

igs/imaging-r4/input/pagecontent/design-consideration-actors-obligations.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,27 @@ This section describes the approach taken in the specification related to obliga
55

66
The specification recognizes the following actors:
77

8-
* ImManifestProvider - provides the imaging studies manifest.
8+
* BundleReportEuImagingCreator - creates the imaging studies report.
99
* BundleReportEuImagingProvider - provides the imaging studies report.
1010

1111
#### Provider obligations
12-
The ImProvider provides the information. In this case this means that it has to provide the information defined in the eHN Guidelines that are further refined by Xt-EHR in the Xt-EHR logical model.
12+
The BundleReportEuImagingProvider provides the information. In this case this means that it has to provide the information defined in the eHN Guidelines that are further refined by Xt-EHR in the Xt-EHR logical model.
1313

14-
All data elements in the Xt-EHR model are mapped onto one or more FHIR elements (see the mapping section in the spec). In order to ensure that the provider populates these data elements, a requirement/obligation is placed on each FHIR element referred to in the mapping.
14+
All data elements in the Xt-EHR model are mapped onto one or more FHIR elements (see the [mapping section](xtehr-mapping.html) in the spec). In order to ensure that the provider populates these data elements, a requirement/obligation is placed on each FHIR element referred to in the mapping.
1515

1616
The obligation used has the following fields:
17+
18+
| Field | Value |
19+
|-------|-------|
1720
| code | SHALL:populate-if-known |
18-
| actor | ImManifestProvider or BundleReportEuImagingProvider |
21+
| actor | BundleReportEuImagingCreator or BundleReportEuImagingProvider |
1922
| documentation | list of XtEHR paths that map on this obligation |
2023

2124
This means that the provider SHALL populate these fields it has the information.
2225

23-
24-
#### Using obligations in resources
26+
<!-- #### Using obligations in resources
2527
The obligation extensions will be placed in the profiles. In order to make the profiles clear and concise, for each profile with obligations, sub-profiles will be created.
2628
2729
The main profile will have the structural constraints. The actor specific sub-profile will only hold the obligations placed on the actors.
2830
29-
For ImProvider based profiles, the obligations will in the 'documentation' field, indicate the source Xt-EHR requirement the obligation was derived from.
30-
31+
For BundleReportEuImagingProvider based profiles, the obligations will in the 'documentation' field, indicate the source Xt-EHR requirement the obligation was derived from. -->

igs/imaging-r4/input/pagecontent/design-consideration-composition-diagnosticreport.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### FHIR representation of the report
22

3-
This guide is part of the HL7 EU suite of report related implementation guides that also includes , and .
3+
This guide is part of the HL7 EU suite of report related implementation guides that also includes {{hl7EuLabs}}, {{hl7EuHdr}} and {{hl7EuEps}}.
44

55

66

igs/imaging-r4/input/pagecontent/design-consideration-composition-structure.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ One of the choices made in the IG is the structure of the Composition resource.
44

55
* Leave it open for users of the implementation guide.
66
* Follow the structure of the presented form (rendered document).
7-
* Follow the structure of the {{ehnImagingGuidelines}}.
7+
* Follow the structure of the {% raw %}{{ehnImagingGuidelines}}{% endraw %}.
88
* Adopt the structure defined in IHE-IDR.
99

1010
Linking the structure of the composition of the presented form will cause difficulties as it requires importers of such documents to understand and properly represent such structure which might place undue burden on such import process.

igs/imaging-r4/input/pagecontent/design-consideration-data-entrypoints.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ This IG describes a large set of different resources. Using FHIR search operatio
44

55
The goal of this IG is to provide information on Imaging Reports and Imaging Studies. Although it will allow for other ways to access information, the main "data entrypoints" are the resources that represent these resources.
66

7-
Each imaging study is represented by a _single_ resource.
8-
Each imaging report is represented by a resource. There might be more than one instance of the , when the status of the report changes. All of these will have the same `identifier`. The holds the structured representation of the report. The represents a rendering of the data in the report. All structured data present in the SHALL also be present in the . This specification suggests a set of sections for the Composition which implementers are RECOMMENDED to follow.
7+
Each imaging study is represented by a _single_ {{ImagingStudy}} resource.
8+
Each imaging report is represented by a {{DiagnosticReport}} resource. There might be more than one instance of the {{DiagnosticReport}}, when the status of the report changes. All of these will have the same `identifier`. The {{DiagnosticReport}} holds the structured representation of the report. The {{Composition}} represents a rendering of the data in the report. All structured data present in the {{DiagnosticReport}} SHALL also be present in the {{Composition}}. This specification suggests a set of sections for the Composition which implementers are RECOMMENDED to follow.
99

1010

1111

@@ -29,6 +29,6 @@ classDiagram
2929
note for ImagingStudyEuImaging "entry point for study"
3030
```
3131

32-
When modelling the IG, it is assumed that information related to the report will be gathered by starting at the and information related to the imaging study from the .
32+
When modelling the IG, it is assumed that information related to the report will be gathered by starting at the {{DiagnosticReport}} and information related to the imaging study from the {{ImagingStudy}}.
3333

34-
All information related to the report will referred to from the . All important structured information used for searching will be referred to from the . The structure of the is subject to change and less formal on the meaning on referred to resources. When possible, such references will be made from the .
34+
All information related to the report will referred to from the {{Composition}}. All important structured information used for searching will be referred to from the {{DiagnosticReport}}. The structure of the {{Composition}} is subject to change and less formal on the meaning on referred to resources. When possible, such references will be made from the {{DiagnosticReport}}.

igs/imaging-r4/input/pagecontent/design-consideration-healthcareprofessional.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
### Representing Healthcare Professionals
22

3-
When referring to healthcare professionals, the include information on the professional as well as on the organization the professional is associated with (e.g. information recipient, author, resultValidator, etc.). In FHIR a healthcare professional is represented as a `Practitioner`. As a healthcare professional can be employed by multiple organizations, a different resource,`PractitionerRole` models the relationship between the healthcare professional and an organization.
4-
For the representation of healthcare professionals, organizations and the relations between them, this implementation guide uses the profiles defined by :
3+
When referring to healthcare professionals, the {% raw %}{{ehnImagingGuidelines}}{% endraw %} include information on the professional as well as on the organization the professional is associated with (e.g. information recipient, author, resultValidator, etc.). In FHIR a healthcare professional is represented as a `Practitioner`. As a healthcare professional can be employed by multiple organizations, a different resource,`PractitionerRole` models the relationship between the healthcare professional and an organization.
4+
For the representation of healthcare professionals, organizations and the relations between them, this implementation guide uses the profiles defined by {% raw %}{{hl7EuBase}}{% endraw %}.:
55

66
```mermaid
77
classDiagram
@@ -28,4 +28,4 @@ classDiagram
2828
SrcResource --> EuPractitionerRole
2929
EuPractitionerRole --> EuOrganization: organization
3030
EuPractitionerRole --> EuPractitioner: practitioner
31-
```
31+
```

igs/imaging-r4/input/pagecontent/design-consideration-keyimages.md

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
Key images can be represented in two ways:
44

5-
* ImagingSelection
6-
* DocumentReference
75

8-
ImagingSelection if more DICOM oriented and only relates to DICOM identifiers. DocumentReference is more image oriented and also contains information on the size, duration, etc. aspects of the image.
6+
* ImagingSelection (Implemented in this R4 IG by the [ImagingSelectionEuImaging](StructureDefinition-ImagingSelectionEuImaging.html) profile on top of a `Basic` resource with a cross-version extension backporting the R5 ImagingSelection structure)
7+
* DocumentReference
98

9+
ImagingSelection is more DICOM oriented and only relates to DICOM identifiers. DocumentReference is more image oriented and also contains information on the size, duration, etc. aspects of the image.
1010
The {{ehnImagingGuidelines}} requires information on the size, format, duration etc., data elements that are provided on the `Attachment` field on `DocumentReference`. If these fields are critical, DocumentReference fits more closely. In US Core the R4 `Media` resource is used to represent key images. This resource later merged into the FHIR R5 `DocumentReference`.
1111

12-
As this IG has an FHIR R5 and R4 representation, `DocumentReference` is an easy fit but in other sections of this specification, ImagingSelection is used (e.g. to state that an image can from a Procedure Phase).
12+
As this IG has an FHIR R5 and R4 representation, `DocumentReference` is an easy fit but in other sections of this specification, `ImagingSelection` is used (e.g. to state that an image can from a Procedure Phase).
1313

1414
The `ImagingSelection` resource points to a DICOM data. The DICOM instance data also holds the data required by the {{ehnImaging}}. So the client can retrieve the information from the DICOM source data.
1515

@@ -30,20 +30,15 @@ That leaves the question in what way are these resources linked into the overall
3030
```mermaid
3131
classDiagram
3232
direction TD
33-
class ImKeyImagingSelection{
34-
<<ImagingSelection>>
35-
studyUid
36-
}
37-
class ImKeyImagingInstanceSelection{
38-
<<ImagingSelection>>
39-
studyUid
40-
}
41-
class ImKeyImagingSerieSelection{
42-
<<ImagingSelection>>
43-
studyUid
44-
instance.uid
33+
34+
35+
class ImagingSelectionKeyImageEuImaging{
36+
<<Basic as ImagingSelection>>
37+
extension[ImagingSelection].extension[studyUid].value
38+
extension[ImagingSelection].extension[instance].extension[uid].value
4539
instance.sopClass
4640
}
41+
4742
class DocumentReferenceKeyImageEuImaging{
4843
<<DocumentReference>>
4944
modality
@@ -60,13 +55,15 @@ classDiagram
6055
<<Composition>>
6156
section[keyimages]
6257
}
63-
CompositionEuImaging --> DocumentReferenceKeyImageEuImaging: section[keyimages].entry
64-
CompositionEuImaging --> ImKeyImagingSelection: section[keyimages].entry
58+
class DiagnosticReportEuImaging{
59+
<<DiagnosticReport>>
60+
}
61+
CompositionEuImaging --> DocumentReferenceKeyImageEuImaging: section[findings].entry[keyimages]
62+
CompositionEuImaging --> ImagingSelectionKeyImageEuImaging: section[findings].entry[keyimages]
63+
DiagnosticReportEuImaging --> DocumentReferenceKeyImageEuImaging: extension[finding]
64+
DiagnosticReportEuImaging --> ImagingSelectionKeyImageEuImaging: extension[finding]
6565
6666
DocumentReferenceKeyImageEuImaging --> ImageData: content.attachment.url
6767
DocumentReferenceKeyImageEuImaging <|-- ImKeyImageInstanceSerieDocumentReference
6868
DocumentReferenceKeyImageEuImaging <|-- ImKeyImageInstanceDocumentReference
69-
ImKeyImagingSelection <|-- ImKeyImagingSerieSelection
70-
ImKeyImagingSelection <|-- ImKeyImagingInstanceSelection
71-
72-
```
69+
```

0 commit comments

Comments
 (0)