FHIR Chat · Surgical Cases · implementers

Stream: implementers

Topic: Surgical Cases


view this post on Zulip Michelle (Moseman) Miller (Aug 18 2020 at 04:02):

Looking for guidance on which resource to use for a surgical case…. Consider a patient who was involved in a car accident. There is one surgical case (i.e. one visit to the OR) with multiple procedures performed on various injured body parts while under anesthesia.

Option 1: Use EpisodeOfCare where the individual procedures have both an encounter + episode of care reference
Option 2: Use Encounter (which is part of a larger inpatient Encounter, for example). The individual procedures would only reference the surgical encounter / case (and the surgical encounter / case is part of the inpatient encounter).
Option 3: Use Procedure where the individual procedures are “part of” a larger procedure (but there is no procedure.code for the case – the case would have an identifier/case number)

As a side note, regardless of which Option is preferred, we have multiple time periods captured at the case level (whereas the aforementioned resources basically have a single period). For example:

  • Anesthesia period. We ruled out using MedAdmin for a couple reasons. First, anesthesia period differs from med admin dates in that the anesthesia period represents the time that is charged by the facility, which is when anesthesia comes into the room with the patient until they have transferred care to the nurse in PACU. Second, there could be multiple anesthesia methods used within the case (e.g. case starts with an Epidural for a Caesarean Section and then in that same surgical case the patient transitions to General Anesthetic for a Hysterectomy)
  • Surgery period. Surgery start is the incision / scope entering body for the first procedure whereas end is closure / scope removed of last procedure.

view this post on Zulip Jose Costa Teixeira (Aug 18 2020 at 11:20):

Michelle (Moseman) Miller said:

  • Anesthesia period. We ruled out using MedAdmin for a couple reasons. First, anesthesia period differs from med admin dates in that the anesthesia period represents the time that is charged by the facility, which is when anesthesia comes into the room with the patient until they have transferred care to the nurse in PACU. Second, there could be multiple anesthesia methods used within the case (e.g. case starts with an Epidural for a Caesarean Section and then in that same surgical case the patient transitions to General Anesthetic for a Hysterectomy)

you mean you ruled it out completely? I would imagine that "anesthesia" is a procedure, with several subprocedures for entry, administration (N administrations), recovery...
the N administrations would be MedicationAdministration resources -

view this post on Zulip Michelle (Moseman) Miller (Aug 19 2020 at 15:26):

We ruled out using MedAdmin to represent the anesthesia begin/end dates since the Med Admin was more specific to each admin and not the overall case.

view this post on Zulip Michelle (Moseman) Miller (Aug 19 2020 at 15:35):

Are you proposing the following?

  • Procedure [1].occurrencePeriod = surgery period
  • Procedure [2] (part of Procedure[1]).occurrencePeriod = anesthesia period
  • Procedure [3] (part of Procedure [1]).occurrencePeriod = C-Section period
  • Procedure [4] (part of Procedure [1]).occurrencePeriod = Hysterectomy period

I don't think Procedure 1 or 2 will have a Procedure.code defined. Only the procedures 3 and 4 have Procedure.code. That makes it challenging to know which child (Procedure[2]) is the anesthesia procedure unless we hard-code some generic anesthesia (without specifying the method of General vs Epidural) since there will be multiple/different MedAdm that are "part of" that Procedure[2].

view this post on Zulip Vassil Peytchev (Aug 19 2020 at 15:45):

It looks like there are several somewhat distinct parts to this:

  1. Surgical case
  2. Procedures within the case
  3. Anesthesia medAdmin

For 1 - I think that this is an encounter, possibly as a part of an overarching episode of care that can have an inpatient encounter, operation encounter, and a post-op encounter, for example
For 2 - Multiple procedures within the encounter, one for anesthesia, and one for each surgical intervention
For 3 - med administrations, part of the anesthesia procedure

I am sure reality is much messier than the above, but maybe it is a useful starting point.

view this post on Zulip Jean Duteau (Aug 19 2020 at 15:50):

(deleted)

view this post on Zulip Jose Costa Teixeira (Aug 19 2020 at 18:07):

Michelle (Moseman) Miller said:

Are you proposing the following?

  • Procedure [1].occurrencePeriod = surgery period
  • Procedure [2] (part of Procedure[1]).occurrencePeriod = anesthesia period
  • Procedure [3] (part of Procedure [1]).occurrencePeriod = C-Section period
  • Procedure [4] (part of Procedure [1]).occurrencePeriod = Hysterectomy period

I don't think Procedure 1 or 2 will have a Procedure.code defined. Only the procedures 3 and 4 have Procedure.code. That makes it challenging to know which child (Procedure[2]) is the anesthesia procedure unless we hard-code some generic anesthesia (without specifying the method of General vs Epidural) since there will be multiple/different MedAdm that are "part of" that Procedure[2].

Yes, including your comment.
Procedure1.code = 399097000 (Administration of anesthesia) or 410011004 (Administration of anesthesia AND/OR sedation)
MedAdmin1 = {some administration with a route of administration, PartOf=procedure1}

view this post on Zulip Jose Costa Teixeira (Aug 19 2020 at 18:07):

I think that is what Vassil is indicating too.

view this post on Zulip Jose Costa Teixeira (Aug 19 2020 at 18:08):

it will get interesting if you want to capture the evolution of anesthesia. But that is also covered if you do it like the above.

view this post on Zulip Jose Costa Teixeira (Aug 19 2020 at 18:10):

basically if your anesthesia changes site/flow/whatever, or has interruptions, you can put all those as "anesthesia segments" under the main MedAdmin

view this post on Zulip Jose Costa Teixeira (Aug 19 2020 at 18:12):

(if you really want to dive into that detail, this should cover you: https://www.ihe.net/uploadedFiles/Documents/Pharmacy/IHE_Pharm_Suppl_MMA.pdf#page=21 )

view this post on Zulip Jose Costa Teixeira (Aug 19 2020 at 18:13):

The idea is: keep medAdmin separate, because I expect you will need that information at some point. And keep the MedAdmin as simple as possible, but if you want to get it complex, make sure the "simplified view" is always available

view this post on Zulip Michelle (Moseman) Miller (Aug 20 2020 at 14:28):

I had interpreted @Vassil Peytchev suggesting something different where the overall surgical case was represented as an Encounter whereas @Jose Costa Teixeira I interpreted your suggestion to use Procedure[1] for the surgical case. I might raise this to Patient Care to get some additional thoughts.

view this post on Zulip Jose Costa Teixeira (Aug 20 2020 at 15:57):

I recall some discussions where I understood encounter is something broader - something more "administrative" if I may say so. The procedure has a clinical meaning, and a planned start/stop date etc.

view this post on Zulip Michelle (Moseman) Miller (Aug 20 2020 at 21:38):

Clinicians on FHIR has also been discussing this: https://confluence.hl7.org/display/PC/Modelling+Multiple+Procedures (+ some notes that will be added soon from https://confluence.hl7.org/display/PC/Fall+-+2020+-+Virtual+Clinician-on-FHIR)
Patient Care would welcome feedback from implementers. The million dollar question seems to be how to tie the multiple procedures together (a.k.a. surgical case) -- using Procedure or Encounter?
CC: @Lloyd McKenzie @Michael Padula @Stephen Chu @Emma Jones @Jay Lyle @Laura Heermann

view this post on Zulip Russell Leftwich (Aug 21 2020 at 02:22):

It would seem those multiple procedures would be Procedure.partOf to an overall name for the surgical case, which in the CoF use case referenced would be something like "repair of bronchopulmonary atresia"

view this post on Zulip Michelle (Moseman) Miller (Aug 21 2020 at 14:34):

In our EHR, the surgical case has a number assigned (e.g. MAIN-2020-59 -- which translates to the 59th case of the year in the main OR), but I don't think there is a "procedure.code" specified for it -- that would be hard to name an overall procedure in my accident example where procedures are being performed on different body parts as part of that same OR visit

view this post on Zulip Jose Costa Teixeira (Aug 21 2020 at 14:59):

@Robin Bosman

view this post on Zulip Jose Costa Teixeira (Aug 21 2020 at 15:00):

We were looking at this also from a request perspective: Say a GP makes a serviceRequest for the hospital to perform that surgery.

view this post on Zulip Jose Costa Teixeira (Aug 21 2020 at 15:01):

is that how it works? I don't know if the GP should be limited to making a careplan - yes, taht is what GPs do, but the surgery request must be officially requested by the GP (using a ServiceRequest)

view this post on Zulip Gay Dolin (Aug 21 2020 at 15:02):

What if it was kept simple? --- (let not add more complexity and burden than necessary): rely on time stamps (which would all be in the same general ranges -- even if it was an 8 hour surgery) and leverage Procedure.identifier (which is 0...*) and all of them would have one ID that is the same e.g. "MAIN-2020-59 " and what ever other IDs for the "component" surgeries.

view this post on Zulip Jose Costa Teixeira (Aug 21 2020 at 15:03):

Is there anything more complicated than necessary here?

view this post on Zulip Gay Dolin (Aug 21 2020 at 15:05):

Possibly, yes :-)

view this post on Zulip Jose Costa Teixeira (Aug 21 2020 at 15:08):

I don't see any notes too many.. From the original question we have a procedure that has sub-procedures. Timestamps are not always sufficient to link things together. And on top of that we need a request from a GP for elective surgery.

view this post on Zulip Michelle (Moseman) Miller (Aug 23 2020 at 00:37):

We thought about using the case as a Procedure identifier to tie all procedures together, but then we don't have a place for all of the case time periods I mentioned earlier (e.g. surgery start/stop, anesthesia start/stop)

view this post on Zulip Jose Costa Teixeira (Aug 23 2020 at 04:16):

All these (anesthesia, prep, recovery) are procedures with an occurrencePeriod and they are partOf your overall procedure

view this post on Zulip Lloyd McKenzie (Aug 23 2020 at 21:47):

Could a surgical case span encounters - e.g. a pre-op visit, post-op visit and possibly even multiple surgical encounters to complete the overall therapy? If so (even if that's not the common case), I'd go with EpisodeOfCare. Agree with Jose that if what you want to capture is everything that happens from when the patient goes under to when they wake up, that'd be sub-procedures within an overall procedure representing the 'surgery' - with a code as general as needed to encompass the main things that happen.

view this post on Zulip René Störmer (Aug 25 2020 at 12:29):

Michelle (Moseman) Miller said:

We thought about using the case as a Procedure identifier to tie all procedures together, but then we don't have a place for all of the case time periods I mentioned earlier (e.g. surgery start/stop, anesthesia start/stop)

Hi.

I have a similar problem, which I discussed here (German unfortunately): https://chat.fhir.org/#narrow/stream/179183-german-(d-a-ch)/topic/Zeitstempel.20einer.20OP

The current state of HIS systems is, that an operation is done and timestamps are saved as the operation unfolds. Those timestamps can include "Patient arrived in OP room", "Patient left OP Room", "Cut", "Suture", ... but also timestamps regarding anesthesias, as can be seen in a recommendation paper I linked from the German VOPM:

image.png

I would therefore interpret the flow (very simplified) as of now like so:

A patient is arriving in the hospital. A doctor is doing a diagnosis and documenting this in a Condition. If necessary an operation has to take place, so the doctor is requesting this via a ServiceRequest, where he also documents the code, of what has to be done on the patient.

Example: 160007 Removal of foreign body of tendon and/or tendon sheath

An Appointment is created to terminate the following Procedure. On the day of the Appointment the ServiceRequest is then filled by a Procedure, which completes the ServiceRequest and carries out the code 160007. While carrying out this code though, a few steps are necessary, which are the timestamps, which should in my opinion be documented in the procedure. This includes the duration of the anesthesia.

I would find it very problematic, to create a huge number of procedures, for one code that should be carried out, only to document, that a procedure had a number of phases --> timestamps. Imagine a procedure with a very thorough documentation of up to 36 timestamps....

FYI: @Simone Heckmann @Patrick Werner @Stephan Sommer-Schulz

view this post on Zulip Jose Costa Teixeira (Aug 25 2020 at 17:11):

From what I can follow: If you really only ever want the timestamps for those events, you can use the progressStatus extension.

view this post on Zulip Jose Costa Teixeira (Aug 25 2020 at 17:11):

If you want to capture the use of medication, you'd need a medicationAdministration at least. If you want to capture room usage, you'd also better capture some of the different resources.

view this post on Zulip Jose Costa Teixeira (Aug 25 2020 at 17:15):

It seems your use case @René Störmer is about statistics/process control indicators. The "timestamps" are synthetic and are OK for that.
If your case would be OR optimization, you may be interested in capturing more details (e.g. which operating room, which anesthesist, which monitors are used, etc.).

view this post on Zulip Camila Altman (Sep 03 2020 at 19:13):

Hi all,
I searched Zulip and found this topic. From reading this it does not seem there is an easy way in FHIR to have a surgical case and log. Am I mistaken? I want to be able to get to the details of patient entered preop,patient entered OR, anesthesia started, procedure complete, surgery complete, etc.

view this post on Zulip Lloyd McKenzie (Sep 03 2020 at 19:46):

Right now, the recommendation is separate sub-procedures for each step in the log.

view this post on Zulip Camila Altman (Sep 03 2020 at 20:41):

Lloyd McKenzie said:

Right now, the recommendation is separate sub-procedures for each step in the log.

Would you have an example or know where I can see an example?

view this post on Zulip Lloyd McKenzie (Sep 03 2020 at 22:47):

I don't. @Michelle (Moseman) Miller this would be a nice thing to include in the next release of Procedure - maybe contained sub-procedures?

view this post on Zulip Jose Costa Teixeira (Sep 03 2020 at 23:35):

a quick draft I made for Rene Stoermer:

view this post on Zulip Jose Costa Teixeira (Sep 03 2020 at 23:36):

{
    "resourceType": "Procedure",
    "id": "mainSurgery",
    "contained": [
        {
            "resourceType": "Procedure",
            "id": "prep",
            "partOf": [{"reference": "Procedure/mainSurgery"}],
            "status": "completed",
            "code": {
                "coding": [{"code": "#preparation"}]},
            "occurrencePeriod": {
                "start": "xxxxx",
                "end": "yyyyy"
            }
        },
        {
            "resourceType": "Procedure",
            "id": "anesthesia",
            "partOf": [{ "reference": "Procedure/mainSurgery" }],
            "status": "completed",
            "code": {
                "coding": [{ "code": "#anesthesia"}]},
            "occurrencePeriod": {
                "start": "xxxxx",
                "end": "yyyyy"
            }
        },
...
        {
            "resourceType": "Procedure",
            "id": "recovery",
            "partOf": [{
            "reference": "Procedure/mainSurgery"}],
            "status": "completed",
            "code": {
            "coding": [{"code": "#recovery"}]
            },
            "occurrencePeriod": {
                "start": "xxxxx",
                "end": "yyyyy"
            }
        }
    ],
    "status": "completed",
    "code": {"coding": [{"code": "#Appendectomy"}]},
    "occurrencePeriod": {
        "start": "xxxxx",
        "end": "yyyyy"
    }
}

view this post on Zulip Camila Altman (Sep 04 2020 at 01:07):

Thanks so much!

view this post on Zulip Vassil Peytchev (Sep 04 2020 at 02:54):

I am not sure why there is an insistance to use contained resources. Wouldn't a backbone element containing a codeable reference and a time period not be a more general approach?

view this post on Zulip Lloyd McKenzie (Sep 04 2020 at 03:02):

It depends how the system manages the data. If they're not independently managed, don't have independent status, etc. then contained makes sense (which I think is what's being described here). If they do have independent identity/status/etc. then contained would not be appropriate.

view this post on Zulip Vassil Peytchev (Sep 04 2020 at 04:41):

What I am questioning is whether requiring the steps to be expressed by a full resource, contained or not, is too heavy of a construct for something that seems quite intrinsic to surgical procedures.

view this post on Zulip Lloyd McKenzie (Sep 04 2020 at 05:09):

The issue is that the level of detail needed is variable. If all you need is timestamps, a contained resource is pretty heavy. However, if you also want to capture who was responsible for each step, or track status of the step during active surgery, or notes about how it went or details of the method used, etc. then using the resource starts to make much more sense than an extension. And using an extension sometimes and a resource sometimes creates inconsistency.

view this post on Zulip Vassil Peytchev (Sep 04 2020 at 05:18):

Wouldn't codeable reference in this case account for the variability?

view this post on Zulip Lloyd McKenzie (Sep 04 2020 at 05:57):

CodeableReference isn't going to capture a timestamp - the minimal use-case identified here was code + timestamp.

view this post on Zulip Vassil Peytchev (Sep 04 2020 at 16:07):

Just to clarify, the part that I am talking about is the surgical procedure, not the surgical case. For example, 119000 - Thoracoscopic partial lobectomy of lung.

Why not have

{
    "resourceType": "Procedure",
    "id": "57de0af5-f42d-452c-bcab-a3fac0f10ce9",
    "status":"completed",
    "code": {
        "coding": [
            {
                "system": "http://snomed.info/sct",
                "code": "119000",
                "display": "Thoracoscopic partial lobectomy of lung (procedure)"
           }
        ],
        "text": "Thoracoscopic partial lobectomy of lung"
    },
    "subject": {
        "reference": "Patient/8a6fb8d1-2c0c-4ec3-867f-8f3f6d8eb6c4"
    },
    "occurrencePeriod": {
        "start":"2020-04-05T10:45:00",
        "end":"2020-04-05T13:17:00"
    },
    "surgicalSteps": [
        {
            "stepCodeableRef": {
                "concept": {
                    "coding": [
                        {
                            "system": "http://snomed.info/sct",
                            "code":"34896006",
                            "display":" Incision (procedure)"
                        }
                    ],
                    "text": " Incision"
                },
                "stepOccurrenceDateTime":"2020-04-05T11:07:00"
            }
        }
    ]
}

This is how it would look in R5, in R4 surgicalSteps would be an extension. It seems to me that this will cover 80% of the use cases, and the rest can still use stepCodeableRef.reference instead of stepCodeableRef.concept to reference another Procedure resource.

view this post on Zulip Michelle (Moseman) Miller (Sep 04 2020 at 22:18):

I don't think Patient Care Work Group fully endorses using Procedure and sub-Procedures for unrelated procedures that take place during the same OR visit. We're still actively discussing how to handle the "case"
@Camila Altman When it makes sense to have sub-procedures, there is an example in the spec already: http://build.fhir.org/procedure-example-colon-biopsy.json.html

view this post on Zulip Lloyd McKenzie (Sep 05 2020 at 02:01):

Agree that unreleated procedures should not be captured using partOf.

view this post on Zulip Lloyd McKenzie (Sep 05 2020 at 02:01):

Presumably the linkage for "all surgeries during an encounter" would simply be the fact they're all tied to the same Encounter?

view this post on Zulip Michelle (Moseman) Miller (Sep 09 2020 at 17:17):

Yes, the encounter (or case number) links the procedures together. The bigger issue is where to put the "case" level attributes, such as:

  • Anesthesia period (represents the time that is charged by the facility, which is when anesthesia comes into the room with the patient until they have transferred care to the nurse in PACU.)
  • Surgery period. Surgery start is the incision / scope entering body for the first procedure whereas end is closure / scope removed of last procedure.

view this post on Zulip Camila Altman (Sep 09 2020 at 18:01):

@Michelle (Moseman) Miller I definitely want to know how that gets resolved.


Last updated: Apr 12 2022 at 19:14 UTC