I have mapping some healtchcare fields with FHIR.
My health model its based in every patient has some episodes and every episode has some “transaction”. One transaction is a number that identifie any event related to patient.
What would the correct field in FHIR to informate any transaction?
In FHIR, we break the notion of “any event that happens during an episode” into many different resources - there can be various ProcedureRequests, Conditions, Observations, Procedures, Encounters, AllergyIntolerance instances and potentially other things created. Each of those will have a unique id on the server that creates them. So you could map that to the resource id (if it matches the format) or to the resource identifier if not. If you need all of your transaction ids to be found in a single resource, I’d look at Provenance - a new Provenance instance is created every time a resource is created or changed. Provenance doesn’t have an identifier element, but you could add an extension.
Event is a logical model. It’s used as a pattern for other resources, but it isn’t a resource itself. You can’t send just an “Event” inside an instance - you must send one of the other resources that is mapped to Event (Observation, Procedure, MedicationAdministration, etc.
Can you enumerate some of the types of events you might have?
Well, in order to know how to map it, we need to understand the purpose underlying the organization of the data. Is there documentation or anyone who can explain what the purpose of the hierarchical structure is?
In my datawarhouse, all observations ara structured as follows:
One patient have some observations, the observations are grouped with transaction. One transaction is a grouping acording to same concept (observation), or formulary that done the practiotioner in one date. The transaction is a autonumeric. Each transaction have assigned an agrupation.
I’m still not clear what the purpose of the transaction group is. Data in your persistence layer can have all sorts of stuff in it that doesn’t necessarily need to be surfaced to the outside world. What would downstream users do with the transaction information if it was present? What business process does it drive/enable?
The purpose of the transaction and transaction group is that the users can find quickly the observation.
For example I have some observations about the nutrition of patients. In my hospital all this observations is agruped with same transaction group: Dietitian Questionnarie. And every time that one patient do this questionnaire, is a different transaction.
Another example is a transaction group named: Vital Signs that containe some observations:
Both Observation and Procedure have category - and can accept whatever category codes you wish. If you’re wanting to categorize more than that, you could have problems. I guess one possibility would be to use List to create groups of items - but I’m not sure you’ll find a lot of other systems that will really understand what you’re trying to do with them or take advantage of that organization.
Identifier is a unique identifier for that particular instance. So you shouldn’t have the same transaction code on more than one record - ever. Look at the List resource - it’s a way of grouping other resources.