MAGDSTA8 ;WOIFO/PMK - Q/R Retrieve of DICOM images from PACS to VistA ; Sep 17, 2025@13:56:50
Source file <MAGDSTA8.m>
| action | A | extended action | Ea | event driver | Ed | subscriber | Su | protocol | O | limited protocol | LP | run routine | RR | broker | B | edit | E | server | Se | P | screenman | SM | inquire | I |
| Name | Comments | DBIA/ICR reference |
|---|---|---|
| LEGACY(GROUPIEN,SERIESCOUNT,IMAGECOUNT) | ; get all the UIDs for the imaging group
|
|
| NEWSOPDB(ACNUMB,SERIESCOUNT,IMAGECOUNT) | ; look for UIDs in the P34 database for the new SOP Classes
; Rules: ; 1) the Attribute On File field is not checked at all. ; 2) for the Procedure Reference file (#2005.61), there has to be a pointer to the Patient ; Reference file (#2005.6) and the patient id type in file #2005.6 needs to be "DFN". ; 3) for the Image Study file (#2005.62), the study must be "accessible" and AOF ; 4) for the Image Series file (#2006.63), the series must be "accessible" and AOF ; 5) for the SOP Instance file ("2006.64), the SOP instance must be "accessible" and AOF |
|
| PROBLEM61(PROCIX) | ; check both file 2005.6 and 2005.61
|
|
| PROBLEM62(STUDYIX) | ; check file 2005.62
|
|
| PROBLEM63(SERIESIX) | ; check file 2005.63
|
|
| PROBLEM64(SOPIX) | ; check file 2005.64
|
|
| PROBLEM65(IMAGEIX) | ; check file 2005.65
|
|
| SERIES(VISTASTUDYUID,SERIESUID,SERIESCOUNT) | ; increment series counters
|
|
| IMAGE(VISTASTUDYUID,SERIESUID,SOPUID,IMAGECOUNNT) | ; increment image counters
|
|
| SERVICES(CONSULTSERVICES,GETQRSCP) | ; get services to query
|
|
| SERVICE1 | ; present selection screen(s)
|
|
| SERVICE2 | ; select the service from a screen full
|
|
| SERVICE3 | ; output one service
|
|
| SERVICE4(CONSULTSERVICES,GETQRSCP,LIST,PICK) | ; build list of selected services, by ien
|
|
| QRSCP() | ; get the q/r scp for the consult
|
| Name | Line Occurrences |
|---|---|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: READ |
|
| Function Call: READ |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| Function Call: WRITE |
|
| FileNo | Call Tags |
|---|---|
| ^GMR(123 - [#123] | GET1^DIQ |
| ^GMR(123.3 - [#123.3] | GET1^DIQ |
| ^GMR(123.5 - [#123.5] | GET1^DIQ |
| ^MAG(2006.5831 - [#2006.5831] | GET1^DIQ |
| Name | Line Occurrences (* Changed, ! Killed) |
|---|---|
| ^MAG(2005 - [#2005] | LEGACY+3, LEGACY+12, LEGACY+13, LEGACY+15 |
| ^MAG(2006.5831 - [#2006.5831] | SERVICES+9, SERVICE4+8, SERVICE4+9 |
| ^MAGV(2005.6 - [#2005.6] | PROBLEM61+11 |
| ^MAGV(2005.61 - [#2005.61] | NEWSOPDB+19, PROBLEM61+4, PROBLEM61+7 |
| ^MAGV(2005.62 - [#2005.62] | NEWSOPDB+23, NEWSOPDB+25, PROBLEM61+19, PROBLEM62+4, PROBLEM62+6 |
| ^MAGV(2005.63 - [#2005.63] | NEWSOPDB+30, NEWSOPDB+32, PROBLEM63+4, PROBLEM63+6 |
| ^MAGV(2005.64 - [#2005.64] | NEWSOPDB+37, NEWSOPDB+39, PROBLEM64+4, PROBLEM64+6 |
| ^MAGV(2005.65 - [#2005.65] | NEWSOPDB+43, PROBLEM65+4, PROBLEM65+6, PROBLEM65+9 |
| ^TMP("MAG" | LEGACY+7, LEGACY+9, NEWSOPDB+27, SERIES+1, SERIES+2, SERIES+4, SERIES+8*, IMAGE+1, IMAGE+3, IMAGE+5* , SERVICES+17, QRSCP+3 |
| Name | Line Occurrences |
|---|---|
| $$PROBLEM61 | NEWSOPDB+20 |
| $$PROBLEM62 | NEWSOPDB+24 |
| $$PROBLEM63 | NEWSOPDB+31 |
| $$PROBLEM64 | NEWSOPDB+38 |
| $$PROBLEM65 | NEWSOPDB+44 |
| IMAGE | LEGACY+20, NEWSOPDB+45 |
| SERIES | LEGACY+19, NEWSOPDB+34 |
| SERVICE1 | SERVICES+40, SERVICES+43, SERVICE1+9 |
| SERVICE2 | SERVICE1+7, SERVICE2+30 |
| SERVICE3 | SERVICES+35, SERVICE2+9 |
| SERVICE4 | SERVICES+47 |
| Name | Field # of Occurrence |
|---|---|
| ^("SERIESUID" | LEGACY+15 |
| ^(0 | LEGACY+9*, NEWSOPDB+27*, SERIES+2*, IMAGE+3* |
| >> | Not killed explicitly |
| * | Changed |
| ! | Killed |
| ~ | Newed |
| Name | Field # of Occurrence |
|---|---|
| ACNUMB | NEWSOPDB~, NEWSOPDB+16, NEWSOPDB+19 |
| ALPHA | SERVICES+1~ |
| ALPHA( | SERVICES+11*, SERVICES+14, SERVICES+15 |
| ARTIFACTIX | PROBLEM65+1~, PROBLEM65+5* |
| ARTIFACTONFILE | PROBLEM61+1~, PROBLEM61+6*, PROBLEM61+14*, PROBLEM62+1~, PROBLEM62+7*, PROBLEM63+1~, PROBLEM63+5*, PROBLEM64+1~, PROBLEM64+5* |
| CONSULTSERVICES | SERVICES~, SERVICES+7!, SERVICES+47, SERVICES+49, SERVICE4~ |
| CONSULTSERVICES( | SERVICE4+5*, SERVICE4+15* |
| DELETED | PROBLEM65+1~, PROBLEM65+10* |
| DFN | PROBLEM61+1~, PROBLEM61+12* |
| DONE | SERVICES+1~, SERVICE1+1*, SERVICE1+3, SERVICE1+9, SERVICE2+7, SERVICE2+16*, SERVICE2+17* |
| DTIME | SERVICE2+14, SERVICE2+27 |
| GETQRSCP | SERVICES~, SERVICES+3*, SERVICES+4, SERVICES+5, SERVICES+47, SERVICE4~, SERVICE4+6 |
| >> GMRCIEN | QRSCP+7, QRSCP+8 |
| GROUPIEN | LEGACY~, LEGACY+3, LEGACY+12, LEGACY+13 |
| I | LEGACY+1~, LEGACY+11*, LEGACY+12*, LEGACY+13, SERVICES+1~, SERVICES+9*, SERVICES+14*, SERVICES+16, SERVICES+17, SERVICES+20 , SERVICES+33*, SERVICE2+7*, SERVICE2+8, SERVICE2+19*, SERVICE3+1, SERVICE4+1~, SERVICE4+3*, SERVICE4+4 |
| IBEGIN | SERVICES+1~, SERVICES+28*, SERVICES+33, SERVICE1+4*, SERVICE2+7, SERVICE2+13, SERVICE2+21 |
| IEN | SERVICE4+1~, SERVICE4+8*, SERVICE4+9 |
| IEND | SERVICES+1~, SERVICES+29*, SERVICES+30*, SERVICES+33, SERVICE1+5*, SERVICE1+6*, SERVICE2+7, SERVICE2+13, SERVICE2+21 |
| IMAGECOUNNT | IMAGE~ |
| IMAGECOUNT | LEGACY~, LEGACY+2*, LEGACY+20, NEWSOPDB~, NEWSOPDB+15*, NEWSOPDB+45, IMAGE+4* |
| IMAGEDATA0 | PROBLEM65+1~, PROBLEM65+4*, PROBLEM65+5 |
| IMAGEDATA1 | PROBLEM65+1~, PROBLEM65+6*, PROBLEM65+7, PROBLEM65+8 |
| IMAGEDATA4 | PROBLEM65+1~, PROBLEM65+9*, PROBLEM65+10 |
| IMAGEIEN | LEGACY+1~, LEGACY+14*, LEGACY+15 |
| IMAGEIX | NEWSOPDB+42*, NEWSOPDB+43*, NEWSOPDB+44, PROBLEM65~, PROBLEM65+4, PROBLEM65+6, PROBLEM65+9 |
| >> IMAGINGSERVICE | QRSCP+6 |
| >> INCREMENT | SERVICES+25*, SERVICES+26, SERVICES+28, SERVICES+29, SERVICE1+1*, SERVICE1+2, SERVICE1+4, SERVICE1+5 |
| INCRMENT | SERVICES+1~ |
| IOF | SERVICES+31, SERVICE2+2 |
| IOSL | SERVICES+25, SERVICE1+1 |
| ISCREEN | SERVICES+1~, SERVICES+27*, SERVICES+28, SERVICES+29, SERVICES+37, SERVICE1+3*, SERVICE1+4, SERVICE1+5 |
| KEEPSCREEN | SERVICES+1~, SERVICE2+1*, SERVICE2+24*, SERVICE2+27*, SERVICE2+30 |
| LIST | SERVICES+2~, SERVICES+47, SERVICE4~ |
| LIST( | SERVICES+16*, SERVICE3+1, SERVICE4+4 |
| LIST("" | SERVICE4+2 |
| MAG5831 | QRSCP+1~, QRSCP+8*, QRSCP+9, QRSCP+10 |
| MAGIEN0 | SERVICE4+1~, SERVICE4+9*, SERVICE4+10, SERVICE4+12 |
| N | SERVICES+20*, SERVICES+26, SERVICES+30, SERVICE1+2, SERVICE1+6, SERVICE2+5, SERVICE2+19, SERVICE4+1~, SERVICE4+2*, SERVICE4+3 |
| NPICK | SERVICES+2~ |
| NSCREENS | SERVICES+2~, SERVICES+26*, SERVICES+27, SERVICES+37, SERVICE1+2*, SERVICE1+3 |
| ORIGINAL | PROBLEM65+1~, PROBLEM65+7* |
| PATREFDATA | PROBLEM61+1~, PROBLEM61+11*, PROBLEM61+12, PROBLEM61+13, PROBLEM61+14, PROBLEM61+15 |
| PATREFIX | PROBLEM61+1~, PROBLEM61+8*, PROBLEM61+11 |
| PICK | SERVICES+22, SERVICES+47, SERVICE4~ |
| PICK( | SERVICES+17*, SERVICE2+19*, SERVICE2+22*, SERVICE2+23*, SERVICE3+1, SERVICE4+3 |
| PROCEDURE | SERVICE4+1~, SERVICE4+10*, SERVICE4+14, SERVICE4+15 |
| PROCIX | NEWSOPDB+12~, NEWSOPDB+18*, NEWSOPDB+19*, NEWSOPDB+20, NEWSOPDB+23, PROBLEM61~, PROBLEM61+4, PROBLEM61+7, PROBLEM61+19 |
| PROCNAME | SERVICES+2~, SERVICE4+14*, SERVICE4+15 |
| PROCREFDATA0 | PROBLEM61+1~, PROBLEM61+4*, PROBLEM61+5, PROBLEM61+6 |
| PROCREFDATA6 | PROBLEM61+1~, PROBLEM61+7*, PROBLEM61+8 |
| QRPROVIDER | SERVICE4+1~, SERVICE4+12*, SERVICE4+13, SERVICE4+15 |
| QRSCP | QRSCP+1~, QRSCP+3*, QRSCP+11*, QRSCP+15 |
| QUIT | SERVICES+2~, SERVICES+20*, SERVICES+22, SERVICES+39* |
| RETURN | PROBLEM61+1~, PROBLEM61+2*, PROBLEM61+21*, PROBLEM61+24, PROBLEM62+1~, PROBLEM62+2*, PROBLEM62+8*, PROBLEM62+10, PROBLEM63+1~, PROBLEM63+2* , PROBLEM63+8*, PROBLEM63+10, PROBLEM64+1~, PROBLEM64+2*, PROBLEM64+8*, PROBLEM64+10, PROBLEM65+1~, PROBLEM65+2*, PROBLEM65+11*, PROBLEM65+13 , SERVICES+2~, SERVICES+20*, SERVICES+46, SERVICES+52*, SERVICES+54, SERVICE2+16* |
| SERIESCOUNT | LEGACY~, LEGACY+2*, LEGACY+19, NEWSOPDB~, NEWSOPDB+15*, NEWSOPDB+34, SERIES~, SERIES+5* |
| SERIESDATA0 | NEWSOPDB+12~, NEWSOPDB+32*, NEWSOPDB+33 |
| SERIESDATA6 | PROBLEM63+1~, PROBLEM63+4*, PROBLEM63+5 |
| SERIESDATA9 | PROBLEM63+1~, PROBLEM63+6*, PROBLEM63+7 |
| SERIESIX | NEWSOPDB+12~, NEWSOPDB+29*, NEWSOPDB+30*, NEWSOPDB+31, NEWSOPDB+32, NEWSOPDB+37, PROBLEM63~, PROBLEM63+4, PROBLEM63+6 |
| SERIESUID | LEGACY+1~, LEGACY+15*, LEGACY+18, LEGACY+19, LEGACY+20, NEWSOPDB+12~, NEWSOPDB+33*, NEWSOPDB+34, NEWSOPDB+45, SERIES~ , SERIES+1, SERIES+4, SERIES+8, IMAGE~, IMAGE+1, IMAGE+3, IMAGE+5 |
| SERVICE | SERVICES+2~, SERVICES+8*, SERVICES+9*, SERVICES+10, SERVICES+11, SERVICES+15*, SERVICES+16, SERVICES+17, SERVICE4+1~, SERVICE4+4* , SERVICE4+5, SERVICE4+8, SERVICE4+15 |
| SERVICENAME | SERVICES+2~, SERVICES+10*, SERVICES+11, SERVICES+13*, SERVICES+14*, SERVICES+15, SERVICES+16 |
| SOPDATA0 | NEWSOPDB+13~, NEWSOPDB+39*, NEWSOPDB+40 |
| SOPDATA11 | PROBLEM64+1~, PROBLEM64+6*, PROBLEM64+7 |
| SOPDATA6 | PROBLEM64+1~, PROBLEM64+4*, PROBLEM64+5 |
| SOPIX | NEWSOPDB+13~, NEWSOPDB+36*, NEWSOPDB+37*, NEWSOPDB+38, NEWSOPDB+39, NEWSOPDB+43, PROBLEM64~, PROBLEM64+4, PROBLEM64+6 |
| SOPUID | LEGACY+1~, LEGACY+16*, LEGACY+18, LEGACY+20, NEWSOPDB+13~, NEWSOPDB+40*, NEWSOPDB+45, IMAGE~, IMAGE+1, IMAGE+5 |
| STATUS | PROBLEM61+1~, PROBLEM61+5*, PROBLEM61+15*, PROBLEM62+1~, PROBLEM62+5*, PROBLEM63+1~, PROBLEM63+7*, PROBLEM64+1~, PROBLEM64+7*, PROBLEM65+1~ , PROBLEM65+8* |
| STUDYDATA0 | NEWSOPDB+12~, NEWSOPDB+25*, NEWSOPDB+26 |
| STUDYDATA5 | PROBLEM62+1~, PROBLEM62+4*, PROBLEM62+5 |
| STUDYDATA6 | PROBLEM62+1~, PROBLEM62+6*, PROBLEM62+7 |
| STUDYIX | NEWSOPDB+12~, NEWSOPDB+22*, NEWSOPDB+23*, NEWSOPDB+24, NEWSOPDB+25, NEWSOPDB+30, PROBLEM61+1~, PROBLEM61+18*, PROBLEM61+19*, PROBLEM61+20 , PROBLEM62~, PROBLEM62+4, PROBLEM62+6 |
| SVCNAME | SERVICE4+1~, SERVICE4+4*, SERVICE4+5 |
| TOSERVICE | QRSCP+1~, QRSCP+7*, QRSCP+8 |
| VISTASTUDYUID | LEGACY+1~, LEGACY+4*, LEGACY+5, LEGACY+7, LEGACY+19, LEGACY+20, NEWSOPDB+13~, NEWSOPDB+26*, NEWSOPDB+34, NEWSOPDB+45 , SERIES~, SERIES+1, SERIES+2, SERIES+8, IMAGE~, IMAGE+1, IMAGE+3, IMAGE+5 |
| X | LEGACY+1~, LEGACY+3*, LEGACY+4, SERVICES+2~, SERVICES+39, SERVICES+40, SERVICE2+14*, SERVICE2+15*, SERVICE2+16, SERVICE2+17 , SERVICE2+18, SERVICE2+21, SERVICE2+22, SERVICE2+23, SERVICE2+27*, QRSCP+1~, QRSCP+10*, QRSCP+11 |
| Y | LEGACY+1~, LEGACY+13*, LEGACY+14 |
| Z | LEGACY+1~, LEGACY+15*, LEGACY+16 |
| Name | Field # of Occurrence |
|---|---|
| $T( | SERVICES+5 |