Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@ Usage: #example
Title: "Encounter Accident Broennimann"
Description: "Inpatient Encounter of Mrs. Broennimann which is flagged as an accident"
* meta.source = "https://www.bfh.ch/de/studium/bachelor/medizininformatik/"
* identifier[VisitNumber].type = $v2-0203#VN "Visit number"
* identifier[VisitNumber].system = "http://example.com/fallnummerdomain"
* identifier[VisitNumber].value = "12345"
* identifier[CaseNumber].system = "http://example.com/fallnummerdomain"
* identifier[CaseNumber].value = "12345"
* status = #finished
* class = $v3-ActCode#IMP "inpatient encounter"
* priority = $bfs-medstats-18-admittype#1 "Notfall (Behandlung innerhalb von 12 Std. unabdingbar)"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Instance: EncounterAmbulantBroennimann
InstanceOf: CHCoreEncounter
Usage: #example
Title: "Encounter Ambulant Broennimann"
Description: "Ambulant Encounter of Mrs. Broennimann, representing the visit number (Fallnummer) and the BFS variables"
Description: "Ambulant Encounter of Mrs. Broennimann"
* meta.source = "https://www.bfh.ch/de/studium/bachelor/medizininformatik/"
* identifier.type = $v2-0203#VN "Visit number"
* identifier.system = "http://example.com/fallnummerdomain"
Expand Down
43 changes: 43 additions & 0 deletions input/fsh/logical/CHAdministrativeCase.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
Logical: CHAdministrativeCase
Id: ch-administrative-case
Title: "CH Administrative Case"
Description: "Defines the conceptual model of a Swiss administrative case (Fall / Cas / Caso), a logical artifact defined for national health administration and billing guidelines."

* identifier 1..1 string "Case identifier/number" "The identifying number of the administrative case (visit number, hospitalization number, billing number, etc.). A local identifier meaningful within its assigning system, and not intended to be globally unique."
* sourceSystem 0..1 uri "Source system" "The source system that assigns the case number, e.g. a hospital information system, a billing system, etc."
* admissionDate 0..1 dateTime "Admission date/time" "When and individual was admitted to the healthcare provider."
* admissionLocation 0..1 string "Admission location" "Physical location or medical division which admitted the invidual"
* dischargeDate 0..1 dateTime "Discharge date/time" "When and individual was discharged from the healthcare provider."
* dischargeLocation 0..1 string "Discharge location" "Physical location or medical division which discharged the invidual"


Mapping: CHCoreEncounterToCHAdministrativeCase
Id: ch-core-encounter-to-ch-administrative-case
Title: "CH Core Encounter to Administrative Case"
Source: CHCoreEncounter
Target: "CHAdministrativeCase"
Description: """
CH Core Encounter resources can be associated with an administrative case, if and only if, the `Encounter.identifier:CaseNumber` identifier is provided.
"""

* identifier[CaseNumber].value -> "CHAdministrativeCase.identifier"
* identifier[CaseNumber].system -> "CHAdministrativeCase.sourceSystem"
* period.start -> "CHAdministrativeCase.admissionDate"
* period.end -> "CHAdministrativeCase.dischargeDate"


Mapping: CHCoreEpisodeOfCareToCHAdministrativeCase
Id: ch-core-episodeofcare-to-ch-administrative-case
Title: "CH Core Episode of Care to Administrative Case"
Source: CHCoreEpisodeOfCare
Target: "CHAdministrativeCase"
Description: """
CH Core EpisodeofCare resources can be associated with an administrative case, if and only if, the `EpisodeOfCare.identifier:CaseNumber` identifier is provided.
"""

* identifier[CaseNumber].value -> "CHAdministrativeCase.identifier"
* identifier[CaseNumber].system -> "CHAdministrativeCase.sourceSystem"
* period.start -> "CHAdministrativeCase.admissionDate"
* period.end -> "CHAdministrativeCase.dischargeDate"


25 changes: 14 additions & 11 deletions input/fsh/profiles-resources/CHCoreEncounter.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,28 @@ Profile: CHCoreEncounter
Parent: Encounter
Id: ch-core-encounter
Title: "CH Core Encounter"
Description: "Base definition of the Encounter resource for use in Swiss specific use cases."
Description: "Base definition of the `Encounter` resource for use in Swiss-specific use cases."

* ^purpose = "Core patient demographics which can be shared"
* . ^short = "CH Core Encounter"
* . ^definition = "This is basic constraint on Encounter for use in CH Core resources."
* identifier ^slicing.discriminator.type = #value
* identifier ^slicing.discriminator.path = "$this"
* identifier ^slicing.rules = #open
* identifier contains
VisitNumber 0..*
* identifier[VisitNumber] ^short = "Visit number (Fallnummer)"
* identifier[VisitNumber] ^short = "Administrative visit number (Besuchsnummer / Numero della visita | Numéro de visite)"
* identifier[VisitNumber] ^definition = "The identifying number for the visit (Besuch | Visita | Visite) associated with the Encounter (if relevant) for administrative and/or billing purposes."
* identifier[VisitNumber] ^patternIdentifier.type = $v2-0203#VN
* identifier[VisitNumber].system 1..
* identifier[VisitNumber].value 1..
* class ^short = "AMB | IMP : See mapping from BFS Medizinische Statistik BFS Encounter Class to FHIR"
* identifier contains
CaseNumber 0..*
* identifier[CaseNumber] ^short = "Administrative case number (Fallnummer / Numero del caso | Cas numéro)"
* identifier[CaseNumber] ^definition = "The identifying number for the case (Fall | Caso | Cas) associated with the Encounter (if relevant) for administrative and/or billing purposes."
* identifier[CaseNumber] ^patternIdentifier.type = $v3-ActCode#PBILLACCT
* identifier[CaseNumber].system 1..
* identifier[CaseNumber].value 1..
* class ^definition = "See mapping from BFS Medizinische Statistik [BFS Encounter Class to FHIR mapping](http://fhir.ch/ig/ch-term/ConceptMap-bfs-encounter-class-to-fhir.html)"
* priority from $bfs-medstats-18-admittype_1 (extensible)
* priority ^short = "BFS Medizinische Statistik - Eintrittsart / Mode d’admission / Genere di ricovero"
* priority ^short = "Admission mode (Eintrittsart / Mode d’admission / Genere di ricovero)"
* subject 1..
* subject only Reference(CHCorePatient or Group)
* participant.type from http://fhir.ch/ig/ch-core/ValueSet/ch-core-encounter-participation-type (extensible)
Expand All @@ -35,7 +39,7 @@ Description: "Base definition of the Encounter resource for use in Swiss specifi
BfsMsEncounterType named BfsMsEncounterType 0..1 and
BfsDischargeDecision named BfsDischargeDecision 0..1 and
BfsDischargeDestination named BfsDischargeDestination 0..1
* hospitalization.extension[BfsAdmitRole] ^short = "BFS Medizinische Statistik - Einweisende Instanz"
* hospitalization.extension[BfsAdmitRole] ^short = "Referrer type - (Einweisende Instanz / Décision d’envoi / Istanza ricoverante)"
* hospitalization.extension[accident] ^short = "Flag if hospitalization was due to an accident"
* hospitalization.extension[readmission] ^short = "Flag to indicate if it is a suspected readmission"
* hospitalization.extension[BfsMsEncounterType] ^short = "BFS Medizinische Statistik - Liegeklasse (Encounter Type)"
Expand All @@ -44,11 +48,10 @@ Description: "Base definition of the Encounter resource for use in Swiss specifi

* hospitalization.origin only Reference(CHCoreLocation or CHCoreOrganization)
* hospitalization.admitSource from $bfs-medstats-17-admitsource_1 (extensible)
* hospitalization.admitSource ^short = "BFS Medizinische Statistik - Aufenthaltsort vor dem Eintritt / Séjour avant l’admission / Luogo di soggiorno prima dell’ammissione"
* hospitalization.admitSource ^short = "Location of the patient prior to admission (Aufenthaltsort vor dem Eintritt / Séjour avant l’admission / Luogo di soggiorno prima dell’ammissione)"
* hospitalization.destination only Reference(CHCoreLocation or CHCoreOrganization)
* hospitalization.dischargeDisposition from $bfs-medstats-29-dischargeencounter_1 (preferred)
* hospitalization.dischargeDisposition ^short = "BFS Medizinische Statistik - Behandlung nach Austritt"
* hospitalization.dischargeDisposition ^binding.description = "BFS Medizinische Statistik - Behandlung nach Austritt"
* hospitalization.dischargeDisposition ^short = "Type of therapy/disposition after discharge (Behandlung nach Austritt / Prise en charge après la sortie / Trattamento dopo l’uscita)"

* location.location only Reference(CHCoreLocation)
* serviceProvider only Reference(CHCoreOrganization)
Expand Down
25 changes: 25 additions & 0 deletions input/fsh/profiles-resources/CHCoreEpisodeOfCare.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Profile: CHCoreEpisodeOfCare
Parent: EpisodeOfCare
Id: ch-core-episodeofcare
Title: "CH Core EpisodeOfCare"
Description: "Base definition of the `EpisodeOfCare` resource for use in Swiss-specific use cases."

* identifier ^slicing.discriminator.type = #value
* identifier ^slicing.discriminator.path = "$this"
* identifier ^slicing.rules = #open
* identifier contains
CaseNumber 0..*
* identifier[CaseNumber] ^short = "Administrative case number (Fallnummer / Numero del caso | Cas numéro)"
* identifier[CaseNumber] ^definition = "The identifying number for the case (Fall | Caso | Cas) associated with the EpisodeOfCare (if relevant) for administrative and/or billing purposes."
* identifier[CaseNumber] ^patternIdentifier.type = $v3-ActCode#PBILLACCT
* identifier[CaseNumber].system 1..
* identifier[CaseNumber].value 1..


* diagnosis.condition only Reference(CHCoreCondition)
* patient only Reference(CHCorePatient)
* managingOrganization only Reference(CHCoreOrganization)
* referralRequest only Reference(CHCoreServiceRequest)
* careManager only Reference(CHCorePractitioner or CHCorePractitionerRole)


Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

This logical model is based on the [`AdministrativeCase`](https://www.biomedit.ch/rdf/sphn-schema/sphn#AdministrativeCase) schema defined by the Swiss Personalized Healthcare Network (SPHN) and is provided as conceptual implementation guidance.

### Scope and Usage

This is **NOT** a resource and cannot appear directly in FHIR instances. It defined a logical pattern adhered to by other resources. It serves two purposes:

* It provides implementation guidance to help map internal business logic conceptually to the HL7 CH Core FHIR resources used for data exchange.
* It includes explicit mappings that document where corresponding administrative case information can be found, when present.

### Mapping to FHIR

The table below lists the FHIR resources that can instanciate the logical model and their corresponding mappings.

| FHIR Profile | Mapping Details | Scope
|-------|-------|-------|
| [`CH Core Encounter`](StructureDefinition-ch-core-encounter.html) | [`CH Core Encounter to Administrative Case`](StructureDefinition-ch-core-encounter-mappings.html) | Typically used for inpatient care |
|-------|-------|-------|
| [`CH Core EpisodeOfCare`](StructureDefinition-ch-core-episodeofcare.html) | [`CH Core EpisodeOfCare to Administrative Case`](StructureDefinition-ch-core-episodeofcare-mappings.html) | Typically used for outpatient care |
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

### Scope and Usage

This profile constrains the base FHIR `Encounter` resource to support the exchange of patient visit and hospitalization data in Switzerland. It aligns with the data requirements for [BFS medical statistics](https://www.bfs.admin.ch/bfs/de/home/statistiken/gesundheit/erhebungen/ms.assetdetail.12167417.html) reporting (Federal Statistical Office).

If the encounter is associated with an administrative case (Fall / Cas / Caso), the `identifier:CaseNumber` slice **SHOULD** be used to report it. However, this profile `CHCoreEncounter` does not represent an administrative case itself, it represents the clinical encounter that may be linked to such a case (see [here](StructureDefinition-ch-administrative-case.html) for details).
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

### Scope and Usage

This profile constrains the base FHIR `EpisodeOfCare` resource to support the exchange of patient clinical episodes, programs, and problems in Switzerland.

If the episode of care is associated with an administrative case (Fall / Cas / Caso), the `identifier:CaseNumber` slice **SHOULD** be used to report it. However, this profile `CHCoreEpisodeOfCare` does not represent an administrative case itself, it represents the clinical episode of care that may be linked to such a case (see [here](StructureDefinition-ch-administrative-case.html) for details).