Sunteți pe pagina 1din 6

Emageon Server Codes

1. HOW TO CHECK AVAILABLE SPACE:

FROM RCS01

- ssh rcs02
- df -hT | more

2. HOW TO CHECK MULTICASTER

CHECK FOR MULTICASTER FULL:

FROM RCS02

- cd /emageon/log/multicasterlog/MultiCaster/20040831(change date as needed)


- grep -c "Multicaster is full and will not accept any furth" *

CHECK FOR MLLP ERRORS (hidden characters in HL7 message)

- grep -c "not properly terminated" *

CHECK FOR # OF ORDERS RECEIVED BY MULTICASTER:

- grep -c "ORM\^" *

Note: divide numbers shown by 23 to get an approximate count of orders.

TO CHECK INBOUND ERROR QUEUE:

- cd /opt/emageon/var/multicaster/storage_dir/inbound_error_queue/
Ls

HOW FULL THE MULTICASTER QUEUES ARE:

FROM RCS02

- cd /opt/emageon/var/multicaster/storage_dir
- for i in `ls | grep -v remove`
do
cd $i
echo -e "\n$i: `ls | wc -l`"
cd ..
done

3. HOW TO CHECK MULTICASTER LOGS FOR A MISSING PATIENT MWL BY


ACCESSION #

FROM RCS02

- cd /emageon/log/multicasterlog/MultiCaster/20040831 (change date as needed)


- grep "|3855648" * | grep "ORM\^" (replace 3855648 with accession # of current
incident)

Note: Look for lines in script shown that contain Invalid HL7 message from local port:
12800 successfully persisted to error queue and error/reject ACK and/or messages like
Multicaster is full and will not accept any further m||sages

ADDITIONAL INFORMATION, EMAIL FROM ED T. “Sounds good.If it's not the


problem below, then check for delays maybe. see if the order came in. Look at some of my
previous emails. Basically,
go to the multicaster logs (same as below), and do greps like

grep "|22878789" * | grep 12250


where 22878789 is an accessionnumber and 12250 is the worklist port. see if the
message is sent or blocked.

grep -c "ORM\^" *
will count number of orders coming in to make sure we are getting orders.

grep "|22878789" * | grep "ORM\^"


will show information regarding an order for that accessionnumber

grep "|22878789" * | grep "ORM\^" | grep 12250


same as above but restricts it to port 12250

You can look for the same messages in the archive (cd
/emageon/log/archivelog/ARCHIVE/20040831). Some of my previous emails may have
some good examples.

Ed

4. HOW TO CHECK ROUTING TO BAPTIST FROM ST. THOMAS

FROM RCS02

- cd /emageon/log/archivelog/ARCHIVE/20040818 (change date as needed)


- grep -c "Successfully sent to BH_ARCHIVE" *
5. HOW TO CHECK ROUTING FROM ST. THOMAS TO BAPTIST

FROM RCS02

- cd /emageon/log/archivelog/ARCHIVE/20040818 (change date as needed)


- grep -c "insert into OBJECT" *

6. HOW TO CHECK TO SEE WHEN AN IMAGE WAS SUCCESSFULLY SENT TO


UV USING SOPINSTANCE UID

FROM RCS02

- cd /emageon/log/archivelog/ARCHIVE/20040914
- grep "Successfully sent to IMG_ARCH_UV" * |grep
"1.2.840.113564.10.1.101358384858051935616018618411019723116661"*

Replace example Sopinstance UID with current one. Use “sopinstance UID” *

To see count of images successfully sent to UV by the hour.

- cd /emageon/log/archivelog/ARCHIVE/20040914
- grep –c "Successfully sent to IMG_ARCH_UV" *

7. HOW TO CHECK EXCEPTIONS BIN.

FROM RCS02

- cd /emageon/archive/dicom/exceptions/
- ls
- cd 20040721 (change date as needed)
- ls
- more */*n

$M/bin/sendobjects.sh SEND ST_QC1 100.1.12.247 104 *.gz

8. HOW TO FIND AN IMAGE IN THE ARCHIVE.

FROM RCS02

- cd /opt/emageon/archive/dicom
- cd dss01 (or whatever dss is currently having images stored on it or has has image stored
on it)
- cd files
- cd PA/TI/EN/TI/D (fist 2 digits of MRN / 3&4 digits of MRN / 5&6 digits of MRN / 7&8 digits
of MRN/and so on)
- ll (two lowercase "L's" ) to see studyinstanceuids and date
- cd studyinstanceuid
- Ls to see images (gz)

10. HOW TO CHECK METRICS

From RCS01 (the sql statements must be done from RCS01)

- cd /opt/emageon/manager/bin/metrics/results/
- ls
- less metrics.20040912.log (change date as needed, be sure to leave .log on end)

To look at the sql statements:


From [root@rcs01 results]#

- su oracle
- sqlplus (username = clarcdbro, password = onlyread)

SELECT count(*) "Total Objects (includes HL7)" from routerwork;


SELECT substr(count(*),1,9) "Total Images (DICOM objects)" from
routerwork where type = 'STORE';
Prompt
Prompt
Prompt - Router Status Display (limited to first 200 lines)

select Objects, destinationae, status, numberattempts from


(
select count(*) as Objects, destinationae, status,
numberattempts
from routerwork
group by destinationae, status, numberattempts
)
where rownum < 200;

TIP: TO RUN THE LAST SCRIPT AGAIN TYPE "/" AND ENTER

VARIOUS DIFFERENT ROUTING CHECKS:


IMAGES MOD SOURCEAE RECEIVINGAE
------------------------ ------------ ---------------- ----------------
DESTINATIONAE
--------------------------------------------------------------------------------
STATUS TRIES MAXNUMBERATTEMPTS
---------------------------- -------------------- -----------------

Results from running script below - - - - - - - - - - - - - - - - - - - - - - - -

SELECT substr(count(*),1,6) as images, substr(series.modality,1,3) as


mod,
series.sourceaetitle as sourceae, routerwork.receivingae,
routerwork.destinationae as destinationae,
substr(routerwork.status,1,7) as status,
substr(routerwork.numberattempts,1,5) as tries, maxnumberattempts
FROM patient, study, series, object, routerwork
WHERE patient.patientkey=study.patientkey
AND study.studykey=series.studykey
AND series.serieskey=object.serieskey
AND object.sopinstanceuid=routerwork.identifier
AND rownum <= 500
GROUP BY series.modality, series.sourceaetitle, routerwork.receivingae,
routerwork.destinationae,
routerwork.numberattempts, routerwork.status, maxnumberattempts
ORDER BY routerwork.destinationae,
substr(routerwork.numberattempts,1,5), substr(count(*),1,6);

- - - - - - - - - - - - - - - - - - -
SELECT substr(count(*),1,6) as images, substr(patient.name,1,24) as
name, substr(patient.patientid,1,13) as patientid,
substr(series.modality,1,3) as mod,
routerwork.destinationae as destinationae,
substr(routerwork.status,1,7) as status,
substr(routerwork.numberattempts,1,5) as tries
FROM patient, study, series, object, routerwork
WHERE patient.patientkey=study.patientkey
AND study.studykey=series.studykey
AND series.serieskey=object.serieskey
AND object.sopinstanceuid=routerwork.identifier
AND rownum <=500
GROUP BY patient.name, patient.patientid, series.modality,
series.modality, routerwork.destinationae, routerwork.status,
routerwork.numberattempts
ORDER BY substr(patient.name,1,20), routerwork.numberattempts, count(*);

- - - - - - - - - - - - - - - - - - -

SELECT substr(count(*),1,6) as images,


substr(patient.name,1,23) as name,
substr(study.accessionnumber,1,12) as accession,
study.studydate as SDATE,
to_char(study.studytime,'HH24:MI') as STIME,
substr(series.modality,1,3) as mod, routerwork.destinationae as
destinationae
FROM patient, study, series, object, routerwork
WHERE patient.patientkey=study.patientkey
AND study.studykey=series.studykey
AND series.serieskey=object.serieskey
AND object.sopinstanceuid=routerwork.identifier
AND rownum <= 500
GROUP BY patient.name, series.modality,
study.accessionnumber, series.modality, study.studydate,
study.studytime, routerwork.destinationae
ORDER BY substr(patient.name,1,20);

- - - - - - - - - - - - - - - - - - - - - -

SELECT substr(count(*),1,6) as images, substr(patient.name,1,22) as


name,
substr(patient.patientid,1,12) as patientid,
substr(series.modality,1,3) as mod,
series.sourceaetitle as sourceae, routerwork.destinationae as
destinationae
FROM patient, study, series, object, routerwork
WHERE patient.patientkey=study.patientkey
AND study.studykey=series.studykey
AND series.serieskey=object.serieskey
AND object.sopinstanceuid=routerwork.identifier
AND rownum <= 500
GROUP BY patient.name, patient.patientid,
series.modality,series.sourceaetitle, series.modality,
routerwork.destinationae;

Check MWL from


cd /opt/emageon/log/active/archivelog/WorklistEnvironment1

S-ar putea să vă placă și