HMPDJFSP ;SLC/KCM.ASMR/RRB,CPC-PUT/POST for extract & freshness ;Jan 20, 2017 17:18:18
Source file <HMPDJFSP.m>
| Package | Total | Call Graph |
|---|---|---|
| Enterprise Health Management Platform | 7 | (GET,GTQ)^HMPDJ ($$PID,NEWXTMP,POST,SETERR)^HMPDJFS (DOMOPD,DQINIT,MVFRUPD,QUINIT,SAVETASK)^HMPDJFSQ (DECODE,ENCODE)^HMPJSON INIT^HMPMETA $$EN^HMPSTMP ($$GETMAX,$$GETSIZE)^HMPUTILS |
| Kernel | 2 | $$TM^%ZTLOAD ($$HTFM,$$NOW)^XLFDT |
| VA FileMan | 2 | (FILE,UPDATE)^DIE CLEAN^DILF |
| Master Patient Index VistA | 1 | $$GETDFN^MPIF001 |
| Toolkit | 1 | $$GET^XPAR |
| 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 |
|---|---|---|
| PUTSUB(ARGS) | ; return location after creating a new subscription
; called by: ; API^HMPDJFS ; falls through to: ; QREJOIN ; calls: ; $$TM^%ZTLOAD ; SETERR^HMPDJFS ; $$GETDFN^MPIF001 ; SETERR^HMPDJFS ; OPDOMS^HMPDJFSD ; PTDOMS^HMPDJFSD ; SETPAT ; NEWXTMP^HMPDJFS ; SETMARK ; INIT^HMPMETA ; $$HTFM^XLFDT ; SAVETASK^HMPDJFSQ ; $$PID^HMPDJFS ; output: ; fn returns : /hmp/subscription/{hmpSrvId}/patient/{sysId;dfn} ; : "" if error, errors in ^TMP("HMPFERR",$J) ; .ARGS("server") : name of HMP server ; .ARGS("localId") : dfn for patient to subscribe or "OPD" (operational data) ; .ARGS("icn") : icn for patient to subscribe ; .ARGS("domains") : optional array of domains to initialize (deprecated) |
|
| QREJOIN | ||
| QUINIT(HMPBATCH,HMPFDFN,HMPFDOM) | ; Queue the initial extracts for a patient
; called by: ; VERMATCH^HMPDJFSG ; CVTSEL^HMPP3I ; calls: ; QUINIT^HMPDJFSQ |
|
| SETDOM(ATTRIB,DOMAIN,VALUE,HMPMETA) | ; Set value for a domain ; cpc TA41760
; called by: ; QUINIT^HMPDJFSQ ; QUINIT^HMPMETA ; DQINIT^HMPDJFSQ ; DOMPT ; MOD4STRM ; calls: none ; input: ; ATTRIB: "status" or "count" attribute ; VALUE: ; for status, VALUE: 0=waiting, 1=ready ; for count, VALUE: count of items ; don't update to finished value if just tracking metastamp |
|
| SETMARK(TYPE,HMPFDFN,HMPBATCH) | ; Post markers for begin and end of initial synch
; called by: ; PUTSUB ; PUTSUB-QREJOIN ; QUINIT^HMPMETA ; DQINIT^HMPDJFSQ ; calls: ; POST^HMPDJFS ; SETTIDY |
|
| DQINIT | ; task Dequeue initial extracts
; called by: none ; calls: ; DQINIT^HMPDJFSQ |
|
| DOMPT(HMPFADOM) | ; Load a patient domain
; called by: ; DQBACKDM^HMPDJFS1 ; DQINIT^HMPDJFSQ ; calls: ; $$CHNKCNT ; GET^HMPDJ ; SETDOM ; CHNKFIN |
|
| DOMOPD(HMPFADOM) | ; Load an operational domain in smaller batches
; called by: none ; calls: ; DOMOPD^HMPDJFSQ |
|
| CHNKCNT(DOMAIN) | ; -- get patient object chunk count trigger *BEGIN*S68-JCH*
; called by: ; DOMPT ; calls: ; $$GET^XPAR ; input: ; DOMAIN := current domain name being processed |
|
| CHNKINIT(HMP,HMPI) | ; -- init chunk section callback *BEGIN*S68-JCH*
; called by: ; GET^HMPDJ ; DQINIT^HMPDJFSQ ; CHNKCHK ; calls: none ; input by ref: ; HMP := $NA of location for chunk of objects ; HMPI := number of objects in @HMP |
|
| CHNKCHK(HMP,HMPI) | ; -- check if chunk should be queued callback *BEGIN*S68-JCH*
; called by: ; ADD^HMPDJ ; HMP1^HMPDJ02 ; calls: ; GTQ^HMPDJ ; CHNKFIN ; CHKXTMP ; CHNKINIT ; input by ref: ; HMP := $NA of location for chunk of objects ; HMPI := number of objects in @HMP |
|
| CHNKFIN | ; -- finish chunk section callback *BEGIN*S68-JCH*
; called by: ; DOMPT ; CHNKCHK ; calls: ; MOD4STRM ; POSTSEC |
|
| MOD4STRM(DOMAIN) | ; modify extract to be ready for stream
; called by: ; DOMOPD^HMPDJFSQ ; CHNKFIN ; calls: ; SETDOM ; expects: ; HMPBATCH, HMPFSYS, HMPFZTSK ; results are in: ; ^XTMP("HMPFX~hmpsrv~dfn",DFN,DOMAIN,...) |
|
| POSTSEC(DOMAIN,ETOTAL,SECSIZE) | ; post domain section to stream and set tidy nodes
; called by: ; DOMOPD^HMPDJFSQ ; CHNKFIN ; calls: ; POST^HMPDJFS ; SETTIDY |
|
| SETTIDY(DOMAIN,NODES) | ; Set tidy nodes for clean-up of the extracts in ^XTMP
; called by: ; SETMARK ; POSTSEC ; calls: none ; expects: ; HMPBATCH,HMPFZTSK |
|
| MVFRUPD(HMPBATCH,HMPFDFN) | ; Move freshness updates over active stream
; called by: none ; calls: ; MVFRUPD^HMPDJFSQ |
|
| BLDSERR(DFN,DOMAIN,ERRJSON) | ; Create syncError object in ERRJSON
; called by: none ; calls: ; DECODE^HMPJSON ; ENCODE^HMPJSON ; expects: ; HMPBATCH, HMPFSYS, HMPFZTSK |
|
| POSTERR(COUNT,DFN) | ; put error into ^XTMP(batch)
; called by: ; DQINIT^HMPDJFSQ ; calls: ; POST^HMPDJFS |
|
| INITDONE(HMPBATCH) | ; Return 1 if all domains are done
; called by: ; DQINIT^HMPDJFSQ ; calls: none |
|
| SETPAT(DFN,SRV,NEWSUB) | ; Add patient to 800000 if not there
; called by: ; EN^HMPMETA ; PUTSUB ; calls: ; SETERR^HMPDJFS ; UPDOPD ; ADDPAT |
|
| UPDOPD(SRV,STS) | ; Update status of operational synch
; called by: ; UNSUB^HMPMETA ; UPDSTS ; SETPAT ; calls: ; FILE^DIE ; SETERR^HMPDJFS ; CLEAN^DILF |
|
| ADDPAT(DFN,SRV) | ; Add a patient as subscribed for server
; called by: ; SETPAT ; calls: ; $$NOW^XLFDT ; UPDATE^DIE ; SETERR^HMPDJFS ; CLEAN^DILF |
|
| UPDSTS(DFN,SRVNM,STS) | ; Update the sync status
; called by: ; PUTSUB-QREJOIN ; MVFRUPD^HMPDJFSQ ; calls: ; SETERR^HMPDJFS ; UPDOPD ; $$NOW^XLFDT ; FILE^DIE ; CLEAN^DILF |
|
| CHKXTMP(HMPBATCH,HMPFZTSK) | ; -- ^XTMP check at end each domain loop iteration ; if too big HANG
; called by: ; DQINIT^HMPDJFSQ ; CHNKCHK |
|
| GETSECS() | ; return default # of seconds to requeue in future or hang when processing domains
; called by: ; CHKSP^HMPUTILS ; CHKXTMP |
| Name | Field # of Occurrence |
|---|---|
| $$TM^%ZTLOAD | PUTSUB+27 |
| FILE^DIE | UPDOPD+12, UPDSTS+17 |
| UPDATE^DIE | ADDPAT+15 |
| CLEAN^DILF | UPDOPD+14, ADDPAT+17, UPDSTS+19 |
| GET^HMPDJ | DOMPT+17 |
| GTQ^HMPDJ | CHNKCHK+19 |
| $$PID^HMPDJFS | PUTSUB+86, QREJOIN+32 |
| NEWXTMP^HMPDJFS | PUTSUB+68 |
| POST^HMPDJFS | SETMARK+14, POSTSEC+14, POSTERR+12 |
| SETERR^HMPDJFS | PUTSUB+27, PUTSUB+36, PUTSUB+37, PUTSUB+41, PUTSUB+43, PUTSUB+66, SETPAT+11, SETPAT+14, SETPAT+21, UPDOPD+13 , ADDPAT+16, UPDSTS+12, UPDSTS+18 |
| DOMOPD^HMPDJFSQ | DOMOPD+5 |
| DQINIT^HMPDJFSQ | DQINIT+5 |
| MVFRUPD^HMPDJFSQ | MVFRUPD+5 |
| QUINIT^HMPDJFSQ | QREJOIN+16, QREJOIN+20, QREJOIN+28, QUINIT+7 |
| SAVETASK^HMPDJFSQ | PUTSUB+86 |
| DECODE^HMPJSON | BLDSERR+12 |
| ENCODE^HMPJSON | BLDSERR+20 |
| INIT^HMPMETA | PUTSUB+77 |
| $$EN^HMPSTMP | PUTSUB+61 |
| $$GETMAX^HMPUTILS | CHKXTMP+8 |
| $$GETSIZE^HMPUTILS | CHKXTMP+8 |
| $$GETDFN^MPIF001 | PUTSUB+35 |
| $$HTFM^XLFDT | PUTSUB+83 |
| $$NOW^XLFDT | ADDPAT+14, UPDSTS+16 |
| $$GET^XPAR | CHNKCNT+8, GETSECS+5 |
| Name | Line Occurrences (* Changed, ! Killed) |
|---|---|
| ^DPT - [#2] | PUTSUB+37 |
| ^HMP(800000 - [#800000] | PUTSUB+42, SETPAT+10, SETPAT+14, SETPAT+16, SETPAT+18, SETPAT+21, SETPAT+22, SETPAT+24, UPDSTS+12 |
| ^TMP("HMPERR" | BLDSERR+21, BLDSERR+22*, POSTERR+8, POSTERR+9 |
| ^XTMP( | PUTSUB+66, PUTSUB+67, PUTSUB+71*, PUTSUB+72*, PUTSUB+73*, PUTSUB+74*, PUTSUB+75*, PUTSUB+78, PUTSUB+82, PUTSUB+83* , PUTSUB+84*, QREJOIN+23, SETDOM+15*, SETDOM+16*, CHNKINIT+14, MOD4STRM+15, MOD4STRM+16*, MOD4STRM+18*, MOD4STRM+19, POSTSEC+9 , SETTIDY+12*, SETTIDY+13*, SETTIDY+14*, BLDSERR+9, BLDSERR+14!, POSTERR+10*, POSTERR+11*, INITDONE+7, CHKXTMP+8!, CHKXTMP+9 |
| ^XTMP("HMPFS~" | QREJOIN+14* |
| Name | Line Occurrences |
|---|---|
| $$CHNKCNT | DOMPT+16 |
| $$GETSECS | CHKXTMP+11 |
| @( | PUTSUB+48 |
| ADDPAT | SETPAT+23 |
| CHKXTMP | CHNKCHK+23 |
| CHNKFIN | DOMPT+20, CHNKCHK+21 |
| CHNKINIT | CHNKCHK+25 |
| MOD4STRM | CHNKFIN+11 |
| POSTSEC | CHNKFIN+13 |
| SETDOM | DOMPT+18, MOD4STRM+19 |
| SETMARK | PUTSUB+77, QREJOIN+30 |
| SETPAT | PUTSUB+59 |
| SETTIDY | SETMARK+16, POSTSEC+15 |
| UPDOPD | SETPAT+17, UPDSTS+13 |
| UPDSTS | QREJOIN+15 |
| Name | Field # of Occurrence |
|---|---|
| ^( | INITDONE+7 |
| ^("hanging" | CHKXTMP+9* |
| >> | Not killed explicitly |
| * | Changed |
| ! | Killed |
| ~ | Newed |
| Name | Field # of Occurrence |
|---|---|
| ARGS | PUTSUB~, PUTSUB+77 |
| ARGS( | PUTSUB+71 |
| ARGS("HMPPriority" | PUTSUB+81 |
| ARGS("HMPSVERS" | PUTSUB+33 |
| ARGS("domains" | PUTSUB+55, PUTSUB+56 |
| ARGS("icn" | PUTSUB+35 |
| ARGS("jobId" | PUTSUB+73 |
| ARGS("localId" | PUTSUB+32 |
| ARGS("rootJobId" | PUTSUB+74 |
| ATTRIB | SETDOM~, SETDOM+15, SETDOM+16 |
| CNT | POSTERR+6~, POSTERR+8*, POSTERR+9, POSTERR+10, POSTERR+11 |
| COUNT | MOD4STRM+12~, MOD4STRM+15*, MOD4STRM+16, MOD4STRM+18, MOD4STRM+19, POSTSEC+8~, POSTSEC+9*, POSTSEC+10, POSTSEC+14, BLDSERR+8~ , BLDSERR+21*, BLDSERR+22, POSTERR~, POSTERR+12 |
| DFN | MOD4STRM+12~, MOD4STRM+14*, POSTSEC+8~, POSTSEC+12*, POSTSEC+14, BLDSERR~, BLDSERR+17, POSTERR~, POSTERR+12, SETPAT~ , SETPAT+13, SETPAT+21, SETPAT+22, SETPAT+23, SETPAT+24, ADDPAT~, ADDPAT+10, ADDPAT+11, ADDPAT+12, UPDSTS~ , UPDSTS+13, UPDSTS+15, UPDSTS+16 |
| DIERR | UPDOPD+10~, ADDPAT+9~ |
| DOMAIN | SETDOM~, SETDOM+15, SETDOM+16, CHNKCNT~, CHNKCNT+8, MOD4STRM~, MOD4STRM+13, MOD4STRM+15, MOD4STRM+16, MOD4STRM+18 , POSTSEC~, POSTSEC+9, POSTSEC+14, POSTSEC+15, SETTIDY~, SETTIDY+13, BLDSERR~, BLDSERR+9, BLDSERR+14, BLDSERR+17 , BLDSERR+18 |
| DOMAINS | PUTSUB+29~, QREJOIN+16, QREJOIN+25, QREJOIN+26!, QREJOIN+27 |
| DOMAINS( | PUTSUB+56!, QREJOIN+17, QREJOIN+19 |
| DOMAINS(1 | QREJOIN+26* |
| DOMONLY | MOD4STRM+12~, MOD4STRM+13*, MOD4STRM+19 |
| DONE | INITDONE+5~, INITDONE+6*, INITDONE+7*, INITDONE+8 |
| EMPB | PUTSUB+70~*, PUTSUB+71* |
| ERR | BLDSERR+8~, BLDSERR+13, BLDSERR+20, SETPAT+9~, UPDOPD+10~, UPDOPD+13, ADDPAT+9~, ADDPAT+16, UPDSTS+11~, UPDSTS+18 |
| ERRJSON | BLDSERR~, BLDSERR+22 |
| ERRMSG | BLDSERR+8~, BLDSERR+15*, BLDSERR+16, BLDSERR+19 |
| ERROBJ | BLDSERR+8~ |
| ERROBJ("error" | BLDSERR+15 |
| ERRVAL | BLDSERR+8~, BLDSERR+9*, BLDSERR+10, BLDSERR+11* |
| ETOTAL | POSTSEC~, POSTSEC+10*, POSTSEC+14 |
| FDA | SETPAT+9~, UPDOPD+10~, ADDPAT+9~ |
| FDA( | ADDPAT+12*, ADDPAT+13*, ADDPAT+14*, UPDSTS+15*, UPDSTS+16* |
| FDA(800000 | UPDOPD+11* |
| FDAIEN | ADDPAT+9~ |
| FDAIEN( | ADDPAT+11* |
| FILTER | DOMPT+10~, DOMPT+17 |
| FILTER("domain" | DOMPT+12* |
| FILTER("noHead" | DOMPT+11* |
| FILTER("patientId" | DOMPT+13* |
| HMP | CHNKINIT~, CHNKINIT+14*, CHNKINIT+15, CHNKCHK~, CHNKCHK+25 |
| HMPBATCH | PUTSUB+29~, PUTSUB+44*, PUTSUB+66, PUTSUB+67, PUTSUB+68, PUTSUB+71, PUTSUB+72, PUTSUB+73, PUTSUB+74, PUTSUB+75 , PUTSUB+77, PUTSUB+78, QREJOIN+15, QREJOIN+16, QREJOIN+20, QREJOIN+23, QREJOIN+28, QUINIT~, QUINIT+7, SETDOM+15 , SETDOM+16, SETMARK~, SETMARK+13, SETMARK+14, CHNKINIT+14, CHNKCHK+23, MOD4STRM+14, MOD4STRM+15, MOD4STRM+16, MOD4STRM+18 , MOD4STRM+19, POSTSEC+9, POSTSEC+12, POSTSEC+13, SETTIDY+12, MVFRUPD~, MVFRUPD+5, BLDSERR+9, BLDSERR+14, POSTERR+7 , POSTERR+10, POSTERR+11, INITDONE~, INITDONE+7, CHKXTMP~, CHKXTMP+8, CHKXTMP+9 |
| HMPCHNK | DOMPT+10~, DOMPT+15*, DOMPT+20, CHNKINIT+11, CHNKINIT+13*, CHNKINIT+14, CHNKCHK+14, CHNKFIN+9, CHNKFIN+11, CHNKFIN+13 |
| HMPCHNK("trig | ger count" , DOMPT+16*, CHNKCHK+17, CHNKFIN+13 |
| HMPDSAVE | QREJOIN+24~, QREJOIN+25* |
| HMPDSAVE( | QREJOIN+29, QREJOIN+30 |
| >> HMPENVIR("converting" | SETMARK+11 |
| HMPFADOM | DOMPT~, DOMPT+12, DOMPT+15, DOMPT+16, DOMPT+18, DOMOPD~, DOMOPD+5 |
| HMPFDFN | PUTSUB+29~, PUTSUB+32*, PUTSUB+34, PUTSUB+35*, PUTSUB+36, PUTSUB+37, PUTSUB+44, PUTSUB+48, PUTSUB+59, PUTSUB+77 , PUTSUB+86, QREJOIN+14, QREJOIN+15, QREJOIN+16, QREJOIN+20, QREJOIN+23, QREJOIN+28, QREJOIN+30, QREJOIN+32, QUINIT~ , QUINIT+7, SETMARK~, SETMARK+14, DOMPT+13, MVFRUPD~, MVFRUPD+5 |
| HMPFDOM | QREJOIN+16~*, QREJOIN+18~, QREJOIN+20, QREJOIN+24~, QREJOIN+27*, QREJOIN+28, QUINIT~, QUINIT+7 |
| HMPFDOM(1 | QREJOIN+19* |
| HMPFERR | PUTSUB+29~, PUTSUB+34, PUTSUB+59, QREJOIN+12 |
| HMPFEST | DOMPT+10~ |
| >> HMPFHMP | PUTSUB+40 |
| >> HMPFSYS | BLDSERR+17 |
| HMPFZTSK | CHNKINIT+14, CHNKCHK+23, MOD4STRM+15, MOD4STRM+16, MOD4STRM+18, POSTSEC+9, POSTSEC+14, SETTIDY+14, BLDSERR+9, BLDSERR+14 , POSTERR+10, POSTERR+11, POSTERR+12, CHKXTMP~, CHKXTMP+8, CHKXTMP+9 |
| HMPI | CHNKINIT~, CHNKINIT+16*, CHNKCHK~, CHNKCHK+17, CHNKCHK+25 |
| HMPMETA | SETDOM~, SETDOM+15, DOMPT+18 |
| HMPOK | CHKXTMP+5~*, CHKXTMP+6, CHKXTMP+8* |
| HMPPRITY | PUTSUB+29~, PUTSUB+81* |
| HMPQBTCH | PUTSUB+29~, PUTSUB+45*, PUTSUB+82, PUTSUB+83, PUTSUB+84 |
| >> HMPQREF | POSTSEC+16, CHKXTMP+10 |
| HMPSRV | PUTSUB+29~, PUTSUB+40*, PUTSUB+41, PUTSUB+42, PUTSUB+44, PUTSUB+45, PUTSUB+59, PUTSUB+86, QREJOIN+32, SETMARK+12~ , SETMARK+13*, SETMARK+14, MOD4STRM+12~, MOD4STRM+14*, POSTSEC+8~, POSTSEC+13*, POSTSEC+14, POSTERR+6~, POSTERR+7*, POSTERR+12 |
| HMPSRV("ien" | PUTSUB+42*, PUTSUB+43, QREJOIN+14 |
| HMPSTMP | PUTSUB+29~, PUTSUB+61* |
| HMPSVERS | PUTSUB+29~, PUTSUB+33*, PUTSUB+71*, PUTSUB+72, QREJOIN+16, QREJOIN+29 |
| I | PUTSUB+29~, PUTSUB+56*, QREJOIN+17*, QREJOIN+19, QREJOIN+29*, QREJOIN+30 |
| IEN | SETPAT+9~, SETPAT+10*, SETPAT+11, SETPAT+14, SETPAT+16, SETPAT+17, SETPAT+18, SETPAT+21, SETPAT+22, SETPAT+23 , SETPAT+24 |
| IENROOT | SETPAT+9~ |
| IENS | ADDPAT+9~, ADDPAT+10*, ADDPAT+12, ADDPAT+13, ADDPAT+14 |
| NEWSUB | PUTSUB+29~, PUTSUB+59, PUTSUB+86, QREJOIN+12, QREJOIN+23, SETPAT~, SETPAT+16*, SETPAT+17, SETPAT+22*, SETPAT+23 |
| NODE | POSTERR+6~, POSTERR+9*, POSTERR+10 |
| NODES | SETMARK+12~, SETMARK+14, SETMARK+16, POSTSEC+8~, POSTSEC+14, POSTSEC+15, SETTIDY~ |
| NODES( | SETTIDY+9, SETTIDY+10, SETTIDY+11 |
| RSLT | DOMPT+10~, DOMPT+17, DOMPT+20 |
| SECS | GETSECS+5~*, GETSECS+6 |
| SECSIZE | POSTSEC~, POSTSEC+11*, POSTSEC+14 |
| SEQ | SETTIDY+8~, SETTIDY+11*, SETTIDY+12, SETTIDY+13, SETTIDY+14 |
| SRV | SETPAT~, SETPAT+10, SETPAT+11, SETPAT+14, UPDOPD~, UPDOPD+11, ADDPAT~, ADDPAT+10, UPDSTS+11~, UPDSTS+12* , UPDSTS+13, UPDSTS+15, UPDSTS+16 |
| SRVNM | UPDSTS~, UPDSTS+12 |
| STREAM | SETTIDY+8~, SETTIDY+10*, SETTIDY+12, SETTIDY+13, SETTIDY+14 |
| STS | UPDOPD~, UPDOPD+11, UPDSTS~, UPDSTS+13, UPDSTS+15 |
| SYNCERR | BLDSERR+8~ |
| SYNCERR("collection" | BLDSERR+18* |
| SYNCERR("error" | BLDSERR+19* |
| SYNCERR("uid" | BLDSERR+17* |
| TYPE | SETMARK~, SETMARK+14, SETMARK+15 |
| U | PUTSUB+83, SETTIDY+10, SETTIDY+11, SETPAT+16 |
| VALUE | SETDOM~, SETDOM+15, SETDOM+16 |
| X | SETMARK+12~, POSTSEC+8~, SETTIDY+8~, SETTIDY+9*, SETTIDY+10, SETTIDY+11, INITDONE+5~, INITDONE+6*, INITDONE+7* |