FR2638629A1 - Appareil et procede de surveillance continue de la pression sanguine - Google Patents

Appareil et procede de surveillance continue de la pression sanguine Download PDF

Info

Publication number
FR2638629A1
FR2638629A1 FR8914604A FR8914604A FR2638629A1 FR 2638629 A1 FR2638629 A1 FR 2638629A1 FR 8914604 A FR8914604 A FR 8914604A FR 8914604 A FR8914604 A FR 8914604A FR 2638629 A1 FR2638629 A1 FR 2638629A1
Authority
FR
France
Prior art keywords
int
blood pressure
output signal
terminal
blood
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR8914604A
Other languages
English (en)
Inventor
Noam Egozi
Gabriel J Glick
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
L E TRADING Ltd
Original Assignee
L E TRADING Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by L E TRADING Ltd filed Critical L E TRADING Ltd
Publication of FR2638629A1 publication Critical patent/FR2638629A1/fr
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/02Detecting, measuring or recording pulse, heart rate, blood pressure or blood flow; Combined pulse/heart-rate/blood pressure determination; Evaluating a cardiovascular condition not otherwise provided for, e.g. using combinations of techniques provided for in this group with electrocardiography or electroauscultation; Heart catheters for measuring blood pressure
    • A61B5/024Detecting, measuring or recording pulse rate or heart rate
    • A61B5/02416Detecting, measuring or recording pulse rate or heart rate using photoplethysmograph signals, e.g. generated by infrared radiation
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/02Detecting, measuring or recording pulse, heart rate, blood pressure or blood flow; Combined pulse/heart-rate/blood pressure determination; Evaluating a cardiovascular condition not otherwise provided for, e.g. using combinations of techniques provided for in this group with electrocardiography or electroauscultation; Heart catheters for measuring blood pressure
    • A61B5/021Measuring pressure in heart or blood vessels
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/72Signal processing specially adapted for physiological signals or for diagnostic purposes
    • A61B5/7235Details of waveform analysis
    • A61B5/7242Details of waveform analysis using integration

Abstract

L'appareil selon l'invention de surveillance non invasive continue en temps réel de la pression sanguine comporte un transducteur optique 10 servant à détecter en temps réel la quantité de sang passant dans une artère et un moyen 30, 32, 34, 36, 38, 44 qui répond au signal de sortie du transducteur optique ne fournissant une indication de la pression du sang systolique et de la pression du sang diastolique.

Description

l La présente invention concerne de façon générale la mesure de la
pression sanguine et, plus spécialement, un appareil
et un procédé de surveillance en continu de la pression sanguine.
On connait déjà divers types d'équipement de surveillance de la pression sanguine. Un dispositif non invasif de surveillance en continu de la pression sanguine, désigné par "Cortronic APM 770" est décrit dans un catalogue commercial de la société Cortronic Corporation, 105 Comac St. Ronkonkoma, New York 11779, Etats-Unis d'Amérique. Ce dispositif emploie un manchon classique, qui est
fixé au bras du patient.
Dans Journal of Clinical Monitoring, vol. 3, n 4, octobre 1987, p. 282287, l'article "Continuous, Real-Time, Noninvasive monitor of Blood Pressure: Penaz Methodology Applied to the Finger", de Robert D. Boehmer décrit un dispositif de surveillance de la pression sanguine du doigt produit par la société Ohmeda Monitoring Systems, 355 Inverness Drive S. Englewood, Colorado 80112, Etats-Unis d'Amérique. Un manchon pour le doigt, comportant une source lumineuse intégrée et un détecteur, est employé pour mesurer la dimension de l'artère du doigt, et une enveloppe gonflable est utilisée pour appliquer une pression externe à l'artère. Le dispositif de surveillance fonctionne à l'aide d'un microprocesseur, qui utilise des algorithmes pour déterminer la dimension de l'artère non chargée approximativement chaque minute et pour corriger automatiquement les variations éventuellement induites par la contraction ou la relaxation des muscles lisses. Un système de commande asservi électropneumatique à grande vitesse permet un étalonnage et un
réglage automatiques.
Dans Medical & Biological Engineering & Computing, septembre 1985, pages 459-465, dans un article intituLé "Longterm Ambulatory Monitoring of Indirect Arterial Blood Pressure Using a Volume-oscillometric Method", de K. Yamakoshe et al., il est décrit un instrument portatif fonctionnant à l'aide d'un microprocesseur, qui permet la surveillance sur une longue durée, pour un patient ambulant, de la pression artérielle indirecte du doigt, par mesure
de pressions à l'aide d'un manchon.
Dans le brevet des Etats-Unis d'Amérique n 4 475 554, il est décrit un dispositif non invasif de mesure en continu de la pression sanguine, comprenant un manchon souple gonflable pour le doigt, qui incorpore un émetteur-récepteur d'infrarouge et un circuit électronique connecté à l'émetteur-récepteur et commandant un compresseur dynamique. Le signal fourni par un transducteur de pression électronique correspond de manière très étroite à la
pression artérielle instantanée.
Les dispositifs décrits dans les publications ci-dessus mentionnées peuvent être tous caractérisés par le fait qu'ils mesurent les dimensions physiques de l'artère. Tous emploient un
moyen actionné par fluide pour appliquer une pression physique.
Tous sont des systèmes fonctionnant effectivement en boucle fermée, qui mesurent la pression nécessaire pour maintenir les dimensions physiques de l'artère à un niveau prédéterminé. Par leur nature même, ces dispositifs possèdent une vitesse de réponse limitée, puisqu'ils mesurent la compensation matérielle réalisée par le système face à des variations physiologiques et mesurent donc les
variations physiologiques de manière indirecte.
L'invention vise à fournir un dispositif et un procédé perfectionnés de surveillance non invasive continue de la pression
du sang.
Il est ainsi proposé, selon un mode de réalisation préféré de l'invention, un appareil non invasif de surveillance continue en temps réel de la pression sanguine, comportant un moyen transducteur optique servant à mesurer, en temps réel, la quantité de sang qui passe dans une artère et un moyen répondant au signal de sortie du moyen transducteur optique en produisant,hne indication de la pression du sang systolique et de la pression du
sang diastolique.
Selon un mode de réalisation préféré de l'invention, le moyen indicateur qui répond au signal de sortie du moyen transducteur optique fournit des indications directes de la
pression du sang systolique et de la pression du sang diastolique.
De plus, selon un mode de réalisation préféré de l'invention, le moyen indicateur qui répond au signal de sortie du moyen transducteur optique calcule la pression moyenne du sang en
intégrant le signal de sortie du moyen transducteur optique.
De plus, selon un mode de réalisation préféré de l'invention, il est également proposé un dispositif d'affichage servant à afficher la forme d'onde du signal de sortie du moyen transducteur optique, si bien que la marche des valvules cardiaques
peut être détectée.
La description suivante, conçue à titre d'illustration de
l'invention, vise à donner une meilleure compréhension de ses caractéristiques et avantages; elle s'appuie sur les dessins annexés parmi lesquels: la figure 1 est un schéma de principe d'un appareil non invasif de surveillance continue de la pression sanguine, concu et fonctionnant selon un mode de réalisation de l'invention; et la figure 2, formée des parties dites figures 2a, 2a', 2b, 2b' et 2c, s'étend sur trois planches et est un schéma simplifié du circuit logique et de conversion analogique-numérique
employé dans l'appareil de la figure 1.
On va maintenant se reporter aux figures 1 et 2, qui représentent un appareil non invasif de surveillance continue de la pression sanguine conçu et fonctionnant selon un mode de réalisation préféré de l'invention. Un transducteur optique 10, comprend typiquement un émetteur optique 12, tel qu'une diode d'émission de lumière, par exemple la diode d'émission de lumière "MLED 77" fabriquée par la société Motorola, et un récepteur optique 14, tel qu'un ou plusieurs phototransistors ou diodes PIN, comme par exemple un phototransistor "MRD 711" fabriqué par la société Motorola. Le transducteur optique 10 peut également comprendre un circuit de production d'impulsions 16, comprenant typiquement un transistor 18, par exemple "2N222A", dont la base est connectée via une résistance 20 à une borne du circuit de commande 44 de la figure 2, ainsi qu'une résistance 22 et une résistance variable 24, connectée au transistor 18 par
l'intermédiaire d'une résistance 26.
Le transducteur optique peut fonctionner suivant l'un de plusieurs modes. Le transducteur 12 et le récepteur 14 peuvent être placés directement sur la peau du patient, par exemple sur un doigt, ou bien ils peuvent communiquer avec la peau par l'intermédiaire de fibres optiques ou d'autres guides d'ondes. On peut choisir le nombre des émetteurs et des récepteurs employés
selon la résolution et l'angle de champ voulus.
Le signal de sortie du transducteur optique 10 est typiquement fourni en parallèle à des circuits amplificateurs à courant alternatif 30 et à courant continu 32. On note que, lorsqu'il est employé un émetteur à impulsions, on peut éliminer le circuit amplificateur à courant continu 32, dans la mesure o généralement toute information intéressante est reçue par le circuit amplificateur à courant alternatif 30. Les circuits amplificateurs à courant alternatif et à courant continu fonctionnent typiquement sur la base de puces 33 et 33' 'TIL 72"
ou bien "LF 356".
Les signaux de sortie des circuits amplificateurs à courant alternatif 30 et à courant continu 32 sont additionnés dans un circuit d'addition 34, dont le signal de sortie est fourni à un convertisseur analogiquenumérique 36. Le signal de sortie du
convertisseur analogique-numérique 36 est fourni à un micro-
processeur 38 tel qu'un ordinateur personnel polyvalent, fonctionnant sur la base d'une puce "Intel 8088", qui commande un
dispositif d'affichage 40.
On peut effectuer l'étalonnage de l'appareil de la figure 1 à l'aide d'un manchon classique 42 de mesure électronique de la pression sanguine, par exemple le modèle "CAS 820", fabriqué par la société CAS Medical Systems, Inc., de Brandford, Connecticut 06405, Etats-Unis d'Amérique, qui reçoit un signal d'entrée de la part d'un circuit de commande 44 et four.nit un signal de sortie d'étalonnage au microordinateur 38. Selon une autre possibilité, on emploie un autre appareil approprié de mesure de la pression sanguine et on introduit manuellement dans le système, via un
clavier 46, les lectures obtenues de cet appareil.
Le circuit de commande 44 reçoit des signaux d'entrée de la part du microordinateur 38 et peut fournir également des signaux de sortie au convertisseur analogique-numérique 36, ainsi qu'aux
amplificateurs à courant alternatif 30 et à courant continu 32.
Un mode de réalisation préféré du circuit de la figure 1 est illustré en détail sur la figure 2, o chaque composant du circuit est identifié par le même numéro de référence que sur la
figure 1.
Plus spécialement, la figure 2 est représentée en trois planches de dessins, comportant cinq parties, qui sont respectivement appelées figure 2a, figure 2a', figure 2b, figure 2b' et figure 2c. La figure 2a se rattache à la figure 2b par les symboles de connexion entre planches),) , @, et à la figure 2c par le symboled. Dans La suite, on appelera simplement bornes
ces symboles de connexion entre planches.
Ces différentes parties sont, pour la plupart, divisées en blocs, lesquels sont entourés par des lignes en trait interrompu et représentent des blocs de la figure 1 à l'aide des mêmes références, à savoir: la figure 2a, la référence 10, qui désigne le transducteur optique (contenant un circuit 16 de production d'impulsions appliquées au transducteur optique 10), la référence 32, qui désigne l'amplificateur à courant continu, et la référence 30 + 34, qui désigne la combinaison de l'amplificateur à courant alternatif 30 et du circuit d'addition 34; conjointement pour les figures 2a et 2b, la référence 36, qui désigne le convertisseur analogique numérique; et pour la figure 2b, la référence 44 qui désigne le circuit de commande, et
la référence 46 qui désigne le clavier numérique.
Ainsi que cela a déjà été indiqué en relation avec la figure 1, les blocs 36, 44 et 46 sont connectés au microordinateur 38 et, comme on peut le voir plus spécialement sur la figure 2b, ces connexions avec le microordinateur 38 se font par l'intermédiaire d'un bus AO, A1, A2 à A9 et en outre, pour le circuit 44, par des lignes B2, B14, B20, B28. Les éléments de circuit représentés sur les figures 2a' et 2b' sont reliés à
des sources d'alimentation continue, respectivement par l'intermé-
diaire des lignes B7, B9, B10 et par celui des lignes B10 et B29.
Comme on peut le voir sur la figure 2c, le circuit associé à la borne) est connecté à l'ordinateur 38 par les lignes AO à A16, A18, A19 qui constituent un bus de l'ordinateur 38, et par des
lignes DO à D7 constituant un autre bus.
On va maintenant décrire avec plus de précision les
différentes parties de la figure 2.
L'élément de circuit de la figure 2a' est un filtre d'entrée lrp du système, dont les entrées, repérées par B9, B10 et B7, sont respectivement connectées à des sources de tension de + 12 V, 0 V et - 12 V. L'entrée sous O V est connectée à la terre par une résistance Rl de faible valeur, dont l'autre extrémité est reliée à un trajet malimentant les bornes de circuit associées au symbole ( I). L'entrée sous + 12 V est connectée par l'intermédiaire d'une inductance L1 à un trajet, alimentant les bornes de circuit associées au symbole ( I +). L'entrée sous - 12 V est connectée par l'intermédiaire d'une inductance L2 à un trajet [] alimentant les bornes de circuit associées au symbole ( I-). Entre les premières extrémités de L1 et R1, sont connectés en parallèle les condensateurs C1 et C2, et, entre leurs autres extrémités, les condensateurs C3 et C4 en parallèle. De la même façon, entre les premières extrémités de R1 et L2, sont connectés en parallèle les condensateurs C5 et C6 et, entre leurs autres
extrém tés, les condensateurs C7 et C8 en parallèle.
Comme représenté sur la figure 2a, l'émetteur 12 est une diode d'émission de lumière D1 ("MLED77") qui est alimentée à l'anode par le circuit de production d'impulsions 16. La cathode est à la terre. Le transistor 18 ("2N222A") du circuit 16 est à la terre par son émetteur. Son collecteur, qui alimente l'anode de la diode D1, est connecté à une borne (- +) (trajet m) par la connexion série d'une résistance 22 (R11), d'un potentiomètre 24 (P3),associés au trajet] , et d'une résistance 26. Sa base est connectée via une résistance 20 à la borne du circuit de
commande 44 (figure 2b).
Le récepteur 14 est un phototransistor Q1 ("MRD711") qui est connecté par son émetteur à la terre. Son collecteur fournit le signal de sortie du transducteur optique 10 à l'amplificateur à
courant alternatif 30 et à l'amplificateur à courant continu 32.
La partie principale de l'amplificateur à courant continu 32 est constituée d'un amplificateur opérationnel "TIL72", désigné par La référence 33', qui reçoit le signal de sortie du transducteur optique 10 sur sa borne d'inversion par t'intermédiare d'une résistance R4. Son entrée de non-inversion est connectée à la terre et, entre ses entrées d'inversion et de non-inversion, sont placés deux condensateurs en parallèle, C9 et C10. Un signal de sortie (trajet n4) est fourni par l'intermédiaire d'une résistance R7 à la borne d'inversion d'un autre amplificateur opérationnel, 33, qui constitue la partie principale de l'amplificateur à courant alternatif 30. La sortie de l'amplificateur opérationnel 33' est également reliée à la terre par une résistance R3 et à son entrée d'inversion par l'intermédiaire d'un circuit parallèle formé, pour une branche, par un condensateur Cll et, pour l'autre branche, par la connexion série d'une résistance R2 et d'un potentiomètre P1. Aux bornes de la résistance R2 est monté un dispositif qui peut mettre la résistance R2 en court-circuit sous commande de la borne) reliée au circuit présenté sur la figure 2c et, par l'intermédiaire de ce
dernier, à l'ordinateur 38.
L'amplificateur opérationnel 33 constituant la partie principale de l'amplificateur à courant continu 30 est lui aus i un dispositif "TIL72", qui reçoit le signal de sortie du transducteur optique 10 sur sa borne de non-inversion par l'intermédiaire d'un condensateur C15. Cette borne de
non-inversion est connectée à la terre par une résistance R9.
L'extrémité du condensateur C15 non reliée à la borne de non-inversion est connectée à la terre par un condensateur C16 et à une résistance R5, dont l'autre extrémité est connectée à la terre par un condensateur C17, ainsi que, via une résistance R6, à une borne ( I -t-). L'autre entrée de l'amplificateur opérationnel 33, c'est-à-dire son entrée d'inversion, outre qu'elle reçoit le signal de sortie de l'amplificateur opérationnel 33', est connectée à la terre par la connexion série d'une résistance R8 et d'un potentiomètre P2. La sortie de l'amplificateur opérationnel 33 est connectée, par l'intermédiaire d'une résistance R12 à la borne t (trajet [) du convertisseur analogique-numérique 36 de la figure 2b. La sortie de l'amplificateur opérationnel 33 est également connectée à son entrée d'inversion par l'intermédiaire d'un circuit parallèle formé, pour une branche, par un condensateur C12 et, pour l'autre branche, par une résistance R10 aux bornes de laquelle est monté un dispositif qui peut mettre la résistance R10 en court-circuit sous commande de l'ordinateur 38,
par l'intermédiaire de la borne @)et du circuit de la figure 2c.
On notera que, de manière classique, l'amplificateur opérationnel 33 est doté d'un circuit d'alimentation faisant intervenir, d'une part, une borne (-- +) découplée de la terre par un condensateur C13 et, d'autre part, une borne ( - -) découplée de la terre par
un condensateur C14.
On va maintenant décrire le convertisseur analogique-
numérique 36. La borne.)(figure 2a) est reliée à la cathode d'une diode Zener D2 ("1N4733"). En parallèle avec la diode D2, est monté un condensateur C18. L'anode de la diode D2 est à la terre. Les bornes d et C) (figure 2a) sont connectées entre elles par l'intermédiaire du circuit parallèle formé d'une diode D3 ("1N4733") et d'un condensateur C19. La borne est connectée à la terre. La borne dest connectée (trajet M) à une résistance R13, tle-même étant connectée à une borne ( -). Comme on peut le
voir sur la figure 2b, le circuit de conversion analogique-
numérique est principalement constitué par un dispositif U7 formé d'une puce "7820". On voit que la borne< est reliée à la borne + V REF du dispositif U7, que la borne est reliée à sa borne V REF, et que la borne Q, qui porte le signal de sortie des circuits amplificateurs 30, 32, est connectée à sa borne Vim. Les bornes DO à D7 du dispositif U7 sont respectivement connectées aux lignes A2 à A9 du bus conduisant à l'ordinateur 38. Sa sortie 10 est connectée à la terre, et sa sortie 20 est connectée à une borne d'alimentation () et, via un condensateur de 0, 1 pF, à la sortie 10. Sa borne MD est connectée à une borne d'alimentation (-) et ses bornes CS, RD et WR sont respectivement connectes à la borne( du circuit de commande 44 via le trajet n à la borne CP d'un dispositif U4' ("74LS74") via le trajet l, et à la borne
3 d'un dispositif U4" ("74LS74"), via le trajet 3.
L'élément de circuit de la figure 2b' comprend un trajet a connectant la ligne B29 aux bornes d'alimentation de circuit associées au symbole ( -+) et, via une résistance de 2,2 k 2, aux bornes d'alimentation de circuit associées au symbole (-.). La ligne B29 est découplée de la ligne B10, elle-même connectée à la terre, par la combinaison en parallèle de deux condensateurs de caractéristiques respectives 100 pF, 15 V et 0,1 pF, 50 V. Le clavier 46, représenté sur la figure 2b, comporte des éléments de touches collectivement désignés par CL, qui permettent de relier séparément à la terre les sorties 3, 4, 7, 8, 13, 14, 17, 18 d'un dispositif du type conformateur d'onde, V1, formé d'une puce "74LS374". La sortie 18 est connectée à une résistance de 4,7 kQ, elle-même connectée à une borne ( I). La sortie 10 du dispositif V1 est connectée à la terre, et sa sortie 20 à une borne d'alimentation ( -). Une porte NON- ET, désignée par la référence VO, reçoit à l'une de ses deux entrées, le signal de la ligne B14, qui est également appliqué à la sortie 11 du dispositif V1. La sortie de la porte VO est reliée à la sortie 1 du dispositif V1. L' autre entrée de la porte VO est connectée à la borne Q5 d'un dispositi U3, décrit ci-après, du dispositif de commande 44. Les sorties 2, 5, 6, 9, 12, 15, 16, 19 du dispositif V1 fournissent le signal de sortie du clavier 46, sous la forme d'un signal propre, aux lignes respectives A2 à A9 du bus du
microordinateur 38.
On va maintenant décrire le circuit de commande 44 de la
figure 2b.
Le signal de la ligne B28 est appliqué via un inverseur
U1 à la borne CP d'un dispositif U4 formé par une puce "74LS74".
Le signal de la ligne B2 est appliqué, via un inverseur UI', à une des entrées d'une porte NON-ET à deux entrées, soit UlO', dont la sortie est connectée à la borne S du dispositif U4 formé d'une puce "74LS74". Quant à l'autre entrée de la porte NON-ET U10', elte est connectée à la borne Q d'un dispositif U4',
formé également d'une puce "74LS74".
La ligne B14 est connectée, outre à la sortie 11 du dispositif V1 comme ci-dessus indiqué, aux deux entrées d'une porte NON-ET désignée par la référence U5''', dont le signal de sortie est appliqué à une des deux entrées d'une porte NON-ET U5' recevant par son autre entrée le signal de sortie de la borne V du dispositif U4. En ce qui concerne les autres bornes du dispositif U4, on notera que sa sortie 7 est à la terre, que ses sorties 1 (c'est-à-dire la borne RD) et 14 sont respectivement connectées à des bornes d'alimentation (--), et que sa borne D est connectée
à la sortie 7 du dispositif U3, ci-après décrit.
Le signal de la ligne B20, qui est un signal d'horloge désigné par la référence CLK, est appliqué à la borne Cp d'un dispositif U6, formé d'une puce "74LS161". Les bornes DO, D1, D2,
D3 et GND du dispositif U6 sont connectées ensemble et à la terre.
La sortie 8 du dispositif U6 est connectée à la terre et, via un condensateur de 0,1 pF, à sa sortie 16, laquelle est connectée à une borne d'alimentation (). Les bornes CET, CEP, PE du dispositif U6 sont connectées ensemble et à une borne d'alimentation (->). Les bornes MR et TC du dispositif U6 sont respectivement connectées à la borne Q du dispositif U4' (via le trajet 1) et aux deux entrées réunies d'une porte NON-ET U5, dont la sortie va à la borne SD du dispositif U4. On note que la borne restante, soit Q3, du dispositif U6 est connectée à un
inverseur Ul"'' et à une des deux entrées d'une porte NON-ET U5".
L'autre entrée de la porte U5" est connectée à la sortie 5 d'un dispositif U4", ("74LS74") dont la sortie 2 est connectée à la terre et la sortie 4 reçoit le signal de sortie de la porte NON-ET U5'. La sortie 3 du dispositif U4" reçoit le signal de sortie de l'inverseur UI'" ', lequel va également (trajet) à la borne WR
du dispositif U7.
La borne Rp et la borne D du dispositif U4' vont respec-
tivement à une borne d'alimentation ( -) et à la terre. On voit aussi que la sortie de la porte NON-ET U5' va à la borne CP du dispositif U4', à la broche 4 du dispositif U4", à une entrée de la
porte ET U10 et à l'entrée RD du dispositif U7.
Le signal de sortie de la porte U5" est appliqué à une des deux entrées d'une porte ET, U10, dont la sortie va (trajet 12) à la borne CS du dispositif U7. L'autre entrée de la porte U10
reçoit le signal de sortie de la porte NON-ET U5'.
Les lignes AO, A1 et A2 du bus sont respectivement
connectées aux sorties 1, 2 et 3 du dispositif U3, ci-dessus cité.
Le dispositif U3 est une puce "74LS138". Comme déjà indiqué, sa borne Q5 est connectée à une des entrées de la porte NON-ET VO du
circuit 46 du clavier, et sa borne 7 à la borne D du dispositif U4.
Sa borne 8 est à la terre et sa borne 16 est reliée à une borne (-). Ses broches 4, 5 et 6 sont les entrées d'une porte intégrée au dispositif U3. Les entrées 4 et 5 sont des entrées d'inversion. L'entrée 6 est connectée à la ligne A3. L'entrée 5 est connectée à la sortie d'une porte NON-ET U2 à quatre entrées respectivement désignées par 1, 2, 4 et 5. Les entrées 1 et 4 de la porte U2 reçoivent respectivement les signaux des lignes A4 et A6 via des inverseurs Ul" et U1'''. Les entrées 2 et 5 de la porte U2 reçoivent respectivement les signaux des lignes A5 et A?. La broche 4 du dispositif U3 reçoit le signal de sortie d'une porte NON-ET U2' à quatre entrées, respectivement désignées par 9, 10, 12 et 13. Les entrées 9 et 10 de la porte U2' sont respectivement connectées aux lignes A8 et A9 et les entrées 12 es 13 sont
connectées en commun à une borne ().
On notera que les inverseurs U1, UM', Ul", U1"' et Ul"" peuvent être regroupés dans un même circuit intégré présentant une
seule borne d'alimentation 14 reliée à la borne ( -) et décou-
plée de la terre par un condensateur relié à la borne de masse
unique 7.
De la même manière, les portes U2 et U2', les bascules U4, U4' et U4", tes portes U5, U5', U5" et U5"' et les portes U10,
U10" peuvent être regroupées sur des circuits intégrés communs.
On va maintenant passer à la description du circuit
associé à la borne( dqui apparaît sur la figure 2c et est reliée aux circuits de réaction entre l'entrée d'inversion et la sortie
des amplificateurs opérationnels 33 et 33' de la figure 2a.
Comme on peut le voir sur la figure 2c, la borne/\ est connectée au point de jonction de deux résistances variables (100 kQ) dont les autres extrémités sont respectivement connectées à une borne ( -) et à La sortie 14 d'un dispositif W3, qui est
une puce "DAC06" constituant un dispositif de conversion numérique-
analogique. La sortie 15 de ce dispositif convertisseur est connectée au point de jonction d'une diode Zener, dont l'autre extrémité est reliée à une borne ( -), et d'une résistance reliée à une borne d'dlimentation ( a) . Ses sorties 11 et 13 sont connectées à des bornes ( -), et sa sortie 16 à une borne d'alimentation (). Pour le reste, ses sorties 10 et 18 sont connectées l'une à l'autre, et ses sorties I à 9 recevant un signal numérique sont respectivement connectées à une sortie muette et aux sorties 2, 5, 6, 9, 12, 15, 16, 19 d'un dispositif
W2, formé par une puce "74LS373".
La sortie 10 du dispositif W2 est à la terre et sa sortie est connectée à une borne d'alimentation ( _). Ses sorties 3, 4, 7, 8, 13, 14, 17, 18 sont respectivement connectées à des
lignes DO à D7 s'intégrant dans un bus de l'ordinateur 38.
Les lignes AO, A1 et A2 sont connectées aux sorties 1, 2 et 3 d'un dispositif W1, formé par une puce "74LS138". La sortie 5 (borne E2) de ce dispositif W1 reçoit le signal de sortie d'une porte NON-ET N2 dont les quatre entrées sont respectivement connectées aux lignes A3 à A6. Sa sortie 6 (borne E3) est reliée à la sortie d'une porte NON-ET N1 à quatre entrées, recevant respectivement les signaux de sortie des lignes A7 à A10. Sa sortie 4 (borne El) est connectée à la sortie 15 (borne QO) d'un dispositif Wl' via un inverseur I2. La sortie 8 du dispositif W1 est à la terre. Ses sorties 7, 9 et 10 sont respectivement reliées à une des deux entrées d'une porte NON-ET N5 et aux deux entrées respectives d'une porte NON-ET N4, dont le signal de sortie est
fourni, via un inverseur I3, à la deuxième entrée de la porte N5.
La sortie de la porte N5 est connectée à la sortie 1 (borne (E) du dispositif W2 cité ci-dessus. D'autre part, les sorties 7, 9 et 10
sont respectivement connectées à des bornes () (OPT).
La sortie de l'inverseur I2 est également connectée, outre à la borne E1 du dispositif W1, aux deux entrées connectées en commun d'une porte NONET N3 dont la sortie est connectée à une des deux entrées d'une porte ET T2, ayant sa sortie connectée à la borne CLK d'horloge du dispositif W2. L'autre entrée de la porte ET T2 est connectée à la sortie d'une porte ET T1 recevant respectivement sur ses deux entrées les signaux des lignes A18 et A19. Le dispositif W1' est une puce "74LS138". Ses bornes A, B, C, E2, E3 sont respectivement reliées aux lignes Ail à A15. Sa borne E1 est connectée, via un inverseur I1, à la ligne A16. On sait déjà que sa borne Q0 est connectée, via l'inverseur I2, à la borne E1 du dispositif W1 et aux deux entrées connectées de la
porte NON-ET N3.
Voici la liste des composants cités, ces valeurs étant données naturellement à titre d'exemple. Les valeurs indiquées peuvent varier dans une certaine mesure, pour autant qu'elles permettent toujours d'exercer les fonctions pour lesquelles elles
sont faites.
Capacité (en pF) des condensateurs (le signe * indique un condensateur polarisé):
C1 = 0,1 C2 = 100 C3 = 100 C4 = 0,1
C5 = 0,1 C6 = 100 C7 = 100 C8 = 0,1
C9 = 4,7* Co10 = 1 Cll = 4,7 C12 = 0,1
C13 = 0,1 C14 = 0,1 C15 = 4,7 C16 = 0,1
C17 = 0,1 C18 = 0,1 C19 = 0,1
Inductances L1 = L2 = 1 500 pH Valeurs (en 2) des résistances (la lettre kindique qu'il s'agit de kQ): R1 = 4,7 R2 = 87 k R3 = 12 k R4 = 330 k R5 = 12 k R6 = 75 R7 = 100 k R8 = 1,2 k R9 = 100 k R10 = 100 k Rll = 510 h R12 = 75 R13 = 1,2 k Potentiomètres (résistances maximales): P1 = P2 = 100 kQ
P3 = 500
L'appareil selon l'invention fonctionne typiquement à l'aide d'un logiciel, et un listage du code source de ce logiciel
apparait dans l'annexe A ci-jointe.
Bien entendu, l'homme de l'art sera en mesure d'imaginer,
à partir de l'appareil et du procédé dont la description vient
d'être donnée à titre simplement illustratif et nullement limitatif, diverses variantes et modifications ne sortant pas du
cadre de l'invention.
r-- ----------__---_---_-----------------------------------------------------
L.E. OPTRONICS CCCI I
I*3*$*#**********pI**5e*5**}* *********4** * ile Iceycni.c * l* Nare main - main caller for * * CNIBP software system *
* *
Usage *
* *
* Prototpe in - cnibp.H *
* *
* Description main caller for system, *
* handling; user input, * data acquisition, data * * processing, and data * display.
*- *
Peturn value none *
* *
* Clls ga'phicinit * * minit * * startcnibp * * work_tmode * *SF gotoxy * c key_inp *
* *
* Called by none *
* *
**********#****# *************************/
#include <dos.h> finclude <cnibp_in.h> mrnir C int init(int); int nuT = 1l /* variables.declarations *1 char keychl struct time tmi graphiciniti); /* initialize graphie mode *1 tm.tihour-OI /* set clock ta O */ tm. t imin-O; t. tisec=0; tm. ti-hundO01 %ettime(&tm)l I while (11 t switch(num) l 1* case *1 c /* *1 case 59:init(tmode); /* <FI)>restore graphic mode k * exit(O); /* exit. * case 60 1* <FZ>system calibration (cnibp) k *1 if(hartx>2201 numw60; else C start_cnibp (); nocycle -11 num - 1;
workmode()-1 * work-mode (sensor).
breakl '* * case 61:num - 1 4* <(F3>trend oit blood pressure. */ *, (uosu4s) *pom->IlJOM:lnw**p,/ f()opom-IJOM:;înu.p /* -(JosU4é) 4pO- JOMT SfI t lapow--JOM: T m 5U! I:wMJq I T *Inu is. ja^>adg do.<OT I> 4, f<(1ajj.vi.d.'T xosqlaod]*o: 8&; 4g t. wnu 1(1. NO NUVVC e>.)IuTIad I {sZT}oo S T *:t4% YSJeIU> <10. q1Mi4--11m.w I l.:.io aWvvV<Ji>.} ilu;d I <'T 1 I< x0oaa ) < tT -Y I:lUi4UUJU1W) ' <6(B[ + wJ) l, " IT t (5A0 HMqVCdúX).) ulad I(ú;T)AxoIQ6 ! t Zm(,UC;oo I I.u I <5Xus - q6'qJ.5Tr, +uyad *I t SZ 'jSZ> A.ço7a /*.siTun u-1 Aq llmil q61q*1 IOT-- sq--6T; /*]yIO)BX!.0) lOauewJap(gd) i/)( =. 6ulT--14ill);: j,9 abe: /*,s;un uol Aq H;lM? 4G11/ OT.+ sXs-qSqt /4Q5olscs *u M..u<j /)(T --L*J.IS 9 ibu /* 4/ J:ItlJq /* */ I * wnu /* I t/J) fllijl--l J" N--!.IMv I /* i/l*S
/4 *w.3-S<U Ujewle Ujo uJl 3WLl *1 S <>UJU Ua-
/4 ';w;i q;6q 3;1iossA lllC<b> 4/ <0 "- 6el*--.îlw); E Y Y f tl: U v 9L
6Z98ú9Z
Y fr.. ieyinp.c X t.,n ceal the heys from new * k {;hoard *
Y *
- t t'e-! -
* *
Prototype in - DO05.1 *
V IK<EY. I I *
t * e nf-cription Feeld data from appropri-* e -te address snd transla-*
r >t- It to ASCII codes.
Y *
r Fet-rn velurt urn - ASCII code * rai1s inpnrtb *
Y *
l Cl.4 b.vfnote *
Y *
Ifnrlude <keydos.h jtr t'Pe_inp <> ( tptic prev_key - OxFFFFi r.-..r Ikcyicl; rnt r' m; IecrF, nportb( KEYPORT)I qqi tch {'eych) care FI: num n59; break I rase r2: timpm - 60; break; cà.e F3: if (prev_l<ey:- F3) num, 61; else num - 1; br eal; r:e. rF: if (pruvkey! F4) 1um - 621 elsr nui- I; breal:; c,?r FS: if (prev_cey - FS5 num = 63; else num 1 break; cei F6: if (prev_ley!- F6) num - 64; Irna n'lm - t; hi1 -al x rer. r?: if (prnvIcey!F73 num - 65; eIs- num - 1; br eak; rp, rito: if (prevlj-y!- F10 num - 601 elre nuM 1; breakl def.u l t num - Il prey Iav\ " Iey_chs I At ilr I (I1 1n 11, > $$ #î î$X wt t i Xliii tt* 11*1%* ttiti III I X>* y F* Je beep.c me bep * * tP. * * Use. void beep(int,int)l *
* *
4 Prototype in cnibp.h * i * De*crjption turn on the speaker * + tuntil <F10>is * *+ pressed. * * Peturn non. *
* -4
* Calls none. *
* *
* Called by write results. *
* 4
ê***Pi**XI*i5x*1*******4*******ttt*i******/ fttncit.d Cdos. h> 9rtern int speakerresetl void beep(int divlint div2) int cv'l,j speaker_reset inportb(Oxél)i outportb(Ox43,OxB6)1 eutportb(Ox42, div2> outportb(Ox42, divil); cvl - (speaker_remet I 3 i outportb(Ox6icvi)l )
F i 1 t.c% 1 c-neb-..
XXSXJ!.XYXi XXXiXXX**XXX**#X***XX******* F File calcne].c * calc netq factor - * computes calibration * S 4efactor * * * Uaa3e void calcnewjactor<i * q * ofClrcvpe 111 Cclu. i r r
Description compute factor agairnst *
* ncalibration results, for* data processin. * F* * Roturn value none * ** Calis none * 1'* * Called by workmode * *f *
************ ********* K******************I
extern int max, mini extern int maxi,minil extern float factors; eYtr-n int after_calibl e'tern 4loat systoltc,diastolicl void cdlcnewfactor() int temp; mlvi ' maxi "tni * min; if ( (temp - max-min) - O) lactors = 0. 01 ls-
factors = (systolic-diastolic)/temnp; /* systolic factor -
after_calib = O; /* Remet after-calib flag. * K Fil. clear.C* $ ^'q^im ale&rw1ndaw *
K *
* * r atotype in * I* * Dscription *
* *
Pet.jr. value #
K X
I (CA 1 1 #
I* Called by *
I K
KIIîKNII"IXIXIKI#IIIKK*KK*Kf#"ih*II**#II*/ x - column y r- w etid - width of window hght height oa window *1 *include <dos.h> #include <video.h> *mtern unsigned xaddrC640],yaddrt2002 void cl--r_windcw(x ywidhght) unsigned int x,y,wid,hghtl union REGS regsi recs.x.ax - Ox0600S regs.h.bh - 01 regs.x.cx - (y&ddr[y] " 8) I x&ddrúx3l regs.x.dx - "<y + hghtl <C 51 I xaddrCx + widil intS6evzDEkkrege,kregs!I !*+**x* N***fl**{*************************** * File counthp.c * * MIame ccunthpulse *
* *
* *
Usea- vald count_h_pulse()i *
* *
* Prototype in c&s8.h *
* *
* Description Calculate the heart *
* pulse. *
* *
* Return none *
* *
* Calls none * t* * Called by dlsplay_value * I*
* *
*î***nfifl* *f***c***I******K*K *IXX*K*I*/ extern int keart_pl extern int l1ocyclel extern float oldtimenewtimel void count_lpulse() f1ort hpuise; if (inew_time - oldtime Il (no_cycle -- -t>> hert_p - 01 tlse h_pulse (60.0 * nocycle/2.0)/(new_time - aldtinel> heart_p - hpulsi; -I Mm0-q l"5"*#*MXi Y* #>"XX >##****le File diepval.c * * lame display_value dtisplayrs* * values graphically. *
* *
* Use7 void display_value * f<int paintIl*
# *
* Prototype in *
* *
Description displays a value graph- *
* ically, in the form oa * * dot, and a line drawn * #4 from it to the last dr- X * *1awn dot. *
*, *
* Return value none *
* *
Calls draw line * * count_hpulse *
* *
* CAled by workmode
* *
X(IXIIXIXIKXIIINKKXII#XXXuK*XI**KIXXXXIXXX #include (time.h> Mir.rlude 'hart_w.11 #include <dos.h> #define XDIST 2 *xtern floaat oldtim-, new_timel extern Int clr,nocycle,hartxl extern float mean,systolic, factor_sl extern int max acc,min_acc! extern int maxcounter,maxil vold display_valuetilnt pointl int newyti,Joldx,res4,window_ hight - HARTY2 HARTYII float epsilon-IE-51 utruct time time_old,timenewl static int printratb-3 l static int oldy-l, x-HART_XI+ll static long meanpoint Oi static float *ummean - 0.01 static float ylevel-O.O1 static int cyclex HARTXI+I, cycle-_point 01O newy - point/HART_SCALEI /* Translate the signal to the dimensions*/ new.y - HART_Y2 - newyl /* of the displaywindow. * if toldy -= -11 oldy-newyl clear_windowt(x+6,HART_YI,O, window_hight)l If CsieWy < IIARIYI newy - HIART_YII oldx - x - XDISTI if Coldx < HART Xi) oldx-HARTXll clr - I1 drawline(oldx,oldyx,newyi{ /* Draw the next connectlng line. *1 drai-linetoldx,HARTYl-lx,HARTY&-l)J drew_line(oldx,HART_Y2,xsHART_Y2ll f (<ystolic) epslion> /* after calibration *1 t gummean. pointt s#eAr.-point ++! } i (C(y_level>oldy) kL(y_level≤newyHI<((yleveI<oldy)lkk(y_level>-newy)] t if (no-cyclo -- -1) 9ettime(&time_oldJ; oldtme = timeoldtihour * 3600.0 + timeold.ti_ min * 60.01 oldtime - old_time + time aold.ti_sec + timeold.ti_hiun/1000.1 ? f14 (x-cycle-x) > cycle-point/4) rnocycle++; jeLtime(&time _letlu neeltime = time_neta ti hour * 3600.0 + time_tnew.timin * 60.0; new time - newtime + time_new.ti_sec + time new. ti_hund/100.01 cycle-x z x; } x += XJIIST; if Cx > IIARTX2) /* 14 it reached the end of the */ t( /* dleplay- window C */
count_h_puilse(l /* Calculate heart pulse.
ylevel = (O.S*(max_acc - min_accl + min_acc)/maxcounterl y_level = HARTY2 - ylevel/HARTSCALEI if <systolic>epsilon) mean - systolic + factor_s * (summmean / meanpoint) - factors * maxil sum mean - 0.0; mern point - 01 w. it Presu;lts1) /* Write meamurifg results. *1/ trendii; /* Write systolic trend. * if (nocycle > 0) cycle_point - (HARTX2 - IIART_X1) / no_cycle; else cycle_point - tHARTX2 - HART_XI) / 111 nocycle - -11 xHART_xlii; f* * cleai_windoiqx+3,HARTYl,X_DST,.indow_hi9ht>; dre'_box(HART.1,HARTY-iHARTX2+1,HART_Y2)Ij cycle x - xi prlint_rate++{ if (tprintrate%3--O) print_resultsl() printrate - O; )
) /*) *1
hsrtr - x; heeder files included
_....____ _ _ _ _. _....._- _*/
eytern unsigned yaddrt200]; ertern unsigned xaddrEt640J eytern cher shiftE6402; tern char pointt64031 e'tern int clrl erterr char fer *scrnl I**k*f*4*******t************************** *File dot.c * * Name dot draws a dot. *
* *
Usage void dot tint xint y)l *
** *
* Prototype in cas.h *
* *
* escription computes the offset in * * the screen buffer of * * the bit to b set. *
* *
* Return value none *
* *
* Calit none
* *
* Called by drawline *
* *
void dot ( int x, int y> unsigned total; total - xaddrlxj + yaddrty3l scrnttotal] - (clr <C shift[x]) I Cscrnttot&l L pointtxll
I**.** * *****#**********************
* Filc drawbox.c * * Farme drawbox - drawS a box. *
* *
Usage void drawbox * * V(int xlylx2,y2)i*
* *
* Prototype in cas.h *
* *
* Description draws a box bounded by *
* colomns XIX2 and rows *
* Y1,Y2. *
* *
* Return value none *
* *
* Calls draw-line *
* *
* Called by drawcreen *
* *
********,:******************************l void draw_boxxtnt xl, int yl, int x2,sint y2) void drawlirne (int xl,int yl,int x2,int y2)1 dra zline l(xylsx2,ylJ; draw_line<x2,yl,x2sy2)l1 d-nw_linelx2,y2,xly2)l rau,_lIne (xl,y2, xl y1>Il /f*****f*********" "*******" I*********l*** * File drawl. c * * Name draw_line - draws a line*
* *
* Usae void dralin * * tint xlylx2,y2)> *
* *
* Prototype in cash *
* *
* Description draws line from CXl,Yl) *
* to (X2,Y2z. *
* '*
* Return value non *
* *
* Calls dot *
* *
* Called by diuplay_value * * draw_scren * * ' drawbox * * void drawline(int xl,int yl, int x2, int yZ) void dot(int x,int y)l int x,y, xstep,ystepdxdydirectl x - xl y - yll xstep m I ystep - Il if t xl > x2! xstep - -il if ( yl) yz2 ystep - -11 dx - abt x2 - xl)I1 dy = ab-t y2 yI)I if t dx -- O) direct - -11 else direct m 0f while I!( tx-mx2) LL (y-y2))) dot tx,y)l if tdirect < O) y - y + ytepl direct - direct + dxl else x - x + x-tepl direct - direct - dyl ) I I********************" e****************** * File drawccr.c * * Name drasscreen - drawm the * * functional screen. *
* *
* Usage void draw_screen<)g *
* *
* Prototype in trend_w. h, hart_w.h *
* *
* Description draws ail the windows *
* for graphic and numeric * * - displays of parameters. *
* *
* Return value none *
* *
* Calls drawbox * * drawline * * got.oxy * * - rewritemain_menu *
* *
* Called by graphic-init *
* *
** *** **** ** **** *** **** * ******** ***** **** I
flinclude <trendw.h> #include <hartw.h> void draw_screeni) intL 1; dra. _box<HART_Xl,HART_YI-IHART_X2+1i,HART_Y2)i /* Graph window. *1 dra. _box(TREND XI,TRENDY1,TRENDX2+1,TREND_Y2)! /* History-graph window.*/ draw_box(0,180,500,195>) /l Menu window. * qnta y(1,21}; /* trend scale mark *I iirintf"l O 11 ntoxy(l1,16)1 printf( 120"11 gotoxy<1,11{{ printfl 240 11 for (i-01 i<31 i++) drawline (TRENDX1-10,11O+20*iTRENDX1,110+20*i) { drawbox(540,13,611,27)1 /* Systolic window. * draw_box(540,53,611,67); /* Diastolic window. * draw_box(540,93,611,107){ /* Nean window. */ draw_box(540,133,611,14711 /* Heart pulse window. *1 drawboxt540,153,634, 70)i /* Clock window. * gotoxy(64,22){ prtntf("ICT LE ISRAEL"}1 gotoxy(64, 23)1 printf<"CNIBP V:1.00"}1 draw_boxi505,172,635,195)i /* ICT ZSRAEL window */ for (i111<6il++) ( gotoxy(l3 4 10 * 11,21JI printf(t%d",(5 * 11) 1) gotoxy(68,Oll printf("SYSTOLIC)1 gotoxy(68,5); printf (DIASTCLIC")> 9otoxy(68,10>i printfl(MEAN BP'}{ gotuxy(68,15)9 printf(H. RATE")1 rewrite_ main_menu(lI K It!"#NXN*NNI* Xlf X*N*t**I*#*****"Xl**l** File getmode.c * * Name gteLmode - vots display * I adapter type and mode. * r * X tnsagirt getmode(ll *
* *
N Prntotype In aes8.h *
X *
I Descrtpiion g-ts mode of display ad-* I apter. * ** * Peturn velue mode of adapter card. * w t'l 15 non- *
X *
* Called by graphic_init *
* *
**N********NX**** N********* ******* X-*******/
tlinclude <dos.h) int getmode() ( union REGS inreg-soutregsl inr-9s.h.ah OxOfl inregs.h.al O int96(OxlO,linregs&,outregsli retturnoutregs.h.al]l Fiag gotoxy.c * K 1-me gotoxy - position cursor* t* rz 1 voitd gotoxy(int x,y)l * Ie * Proin.type in cas.h * r *
F Description position cursor et X,Y *
*" coordinates. *
* *
* Return value none *
IF IF
y Cal l note *
* *
* Called by many '
* *
11 xî. Ie Ny teK te dn.1 KKKKK IKKKKIK I I t r.' Iu'lr' <vtlcI. I.> v'Id gnKnxyC1nt x,lnt y> union REGS regs; egs.h.ah - 21 regs.h.dh - yi regs.h. dl - xl re9s.h.bh -;01 int96(VIDCO,kres,kregs)il )
I* ******************I*******#**************
* File 9raph_in.c * * Name graphicinit *
* *
* Usage void 9raphtcint(li *
* *
* Prototype in cas.h * **
* Description initializing hi - ras *
* Bgraphics on a CGA cards * * *and drawing the systems * * {4unctional screen. * r * * Return value rone *
* *
* Calls Init * * urawscreen *
* *
* Called by main *
* *
extern int tmodei void graphic_initi) ( int getodutelIl void etartprinter()l int tnit(int)g void drawscreen(}I tmode = getmode(It f* Save th- current mode. * init(6)1 /* Initialize graphic mode. * start_printer(g
drawscreen(]{ /* Dieplay systemu screen.
i *ú************ ****************X********** * File tnit.c * * Name init intialize display* X- adapter to graphic mode.*
* *F
* Usa-e int inittint numil *
* *
* Prototype in - *
* *
* Description initialites CGA card to *
* hi-rex graphic mode. *
* *
* Return value mode adapter card le in.*
* *
* Calls nons *
* *
* Called by main * *grahpicinit *
* *
lincludse <dos.h> :include (video. h> extern unsigned yaddrú200o3 extern unsigned xaddrC640]l extern char shiftC64031 *xtern char pointC6401 extern char fer *scrnl int init(int num) int indx - 0, indx2 - O= static tnt max_clr,max_x,maxy,shifterl unsigned clr_wid,manskl union REGS inregs, outregsl if numl > 63 t putseinvalid mode.\x07?') exit(0)l switch (num) ( case 4 max_clr - 31 maxx - 3201 maxy * 2001 shifter - 41 clrwid - 21 break case S maxclr - 1l Maxx - 3201 maxy - 2001 shi+ter * 4l clr_wid - 21 break cAre 6 maxcir - ú maxx = 6401 maxy - 2001 shifter - 0I clrwid - 1I Dtb ak; If (num) 31 C I/*For graphics Modes only*/ while (lin4x < max_y) f/*calculate 11 y offsets *1 yaddrLindx] - 80 * indx2I ++indxl yaddrrindx] m (80 * indx2) + OxZ000; ++tndxt ++indx2I or (indx - O0 inIx < max xl ++indx! mask ' Ox80 " >clrwid * (indx % *hJifter)ll *4 (num 61 ({ /* Nedium resolution offsets *1 mask I- (mask)> 1>1 shift[indx] à - - clr_wid * (indx % shifterl)l else /* High resolution ofcsets *1 shiftltindx] 7 (indx % shifter)l pointtindx] - -moskl xaddrtindx] m- tndx / shifterg ) ) inregs.h.ah * 01 inregs.h.al nuwl inte6(VIDEOLinregstoutregs)l returntnum)l i* end cf init *1 I ***4****> ***4**fl ******4**4****K#********* * tlj printrs.c * X Nd%.e prilnt_reults *
X *
** * Usae void print_results()i *
* *
Prototype in cas.h *
X *
Description Print blood pressure *
* results. *
* *
* Returni none *
* *
* Calls none *
* *
* Called by displayvalue *
* *
* *
****************4*************#***********I
#include (bios.h) Nir.rlude <time.h> e-tern int systo,diast,heartp; ctern float mean; pt'intrenults(l int i,a[Bljmean_vall lons timell char *strnowl for (i01i<8I1i++ aCi] ' ' a[8I] - 'o0'; timelktimel)l str_now ctime<ktimel); for (i-l; 1<93 j++) aCi3 - *tstr-now+ilO+i)l aCI7I - '0 + systo1O00I aCIeS - '0' + (sySto%100)/10 if191 - '0O + systo%1lO mean-val meani aC28] - 0' + meanvallOO{ aC291 - '0' + (meanval%100)/101 &C303 - '0 + meanval%101 sC391 - 48 + diasto100; aC403 - 48 + (diast%100)/10I at41] 48 + diast%10; aC501 - 48 + heart_p/100; *C51 - 48 + <heart_p%100) /iOI aC52] - 48 + heart_p'101 a[O] - 101 if ( blosprint<2,0,0O -- Ox90 I write(4,&a,1iO)1 r,***I**a**a*f***I*l******************** * File retrite. c * * Mlame rewrite_main_menu *
* *
* *
W Usage void rewrit*_mainmenu(*
* *
* Prototype in *
* *
* Description *
Y *
*
* Return none.
* *
* Calls none * * Called by * * tt extern lnt clr,1arv&m 41&9 ewrittmainmenu l void dra&0_lIne(int xl,int yl,int x2, int y2){ void gotoxy tint xint yll int il dIarrfIlag - O; cSr-O dr awline (120,181,120,19511 draw.linel220, 191,220,1951{ draw3 tne(290, 11,290,1951; dr&w=line(370, 81^3?O,19SI{ gotoxy(1,231 print+t"Fl:EXIT F2:CALIB F3:HISTORY F4:SET ALARtI lsM +or (itli<C411*+) < icr - lldraw_line.(O1*i,18O,100*,l{S)l} I*4L****+*****************I*********x******* File setalr.c * Mame setalarm * f *
* *
Lisege void eet_alarmtI *
* *
* Prototype *n
* *
- Description Display alarm menu *
* ntwindow and set alarm * K +lag. * I Petur1 lnnt. * ** * Cals draw_linegotoxy * * draw_box. * * Called by work_mode. *
* *
*4* 1*********** X***C********************I
finclude <conjo.h) ettern Int elr,alarm_ lag,highmys,alarm_switchg void setalarmi) c void gotoxylint x,int Yll void drawline(int xl,int yl,int x2sint y211 Int il alarmnflag c gotoxy(l,23)i printC('<F7>ALARt OFF SYS %3d <PF5>UP CF6>DOWN <F4>MAIN MENU",high_my ); clr-li for <ljtii<t4;i++> drawlinetlOO*ii19,100*i,1951H dral._line{120,181,120,195} draw_linet220, 1el8,220,195)1 draw_linet290,181,290,195)i draw_ljne(370,181,370,195>ú if (alarmlwitchl> gotoxy(12,23)1 printf('N 'Il) File ecah_,C * * Nme aSmoothdata - Smothe * converted 4data *
* *
t'sage3 Int Smooth_data() *
* *
* Prtotype in cnlbp.h *
* *
Description smoothdata gets the *
* artthmatlc average of a * * ashli4ting window of x * * samplee at a time, to * * get a smoothed curve of * * the Sampled data. *
* *
f Return value smooth_data raturns the * *fi value of the ne-Y co- * *. rdlnate of the smoothed * sample. *
* *
Calls none *
* *
* Called by workmode *
* *
#include (dos.h> #include <iport.h> exte-n int AtlOII Int smooth-datal) int i,sum - Oucx_A,iln_A{ At41 - inportb(IPORT)} /* Recleve the sl'xth sample. * if 1(Ar4] > 240) Il (AC4] < Ill Aú4] - tnportb(IPORT>i for (i-0 1i<51 i++l /* Sum up the list six samples. *1/ sum - sum + AEii] for (i=OI i<4{ i++ ACi] - AtlCl+l ret.rni(sui/5)1 * Return average of last Six maple-*/ 1s1 t>!****-* * lStleti *stX**l ****i IE*F** FSile start_pr.c * * Narne *tartprinter *
* *
v*
* *
* I Prototyp in cas.h * **
Description *
* *
* *
**
* *
* *
* Return value none *
* *
* Calls *
* *
* *
* *
* Called by *
* *
Ircu*<ccnio.h> Ninclude (c<bnto.h> IIS clude (biash> strtprinter() char {e -- \nO char aCSgO] = ICT Ltd Rehovo t, ISRAEL\nlt char c[80 - ^ BPTEST P R O 3 E C T\nli char di0] - dat- \n1l char.e[ao - nawe a \n l char bt[O] * not-s:\n "I char 9t801 " TINE SYSTOLIC MEAN DIASTOLIC HEART RATE \n i iF (biosprint(2,O0O0 - Ox90) write<4,4S90) 1 write.4,&,8O) t write(4,c,80) 1 write(4,d,80)I w.r te(4,e,80) wrtte(4,b,80)1 wr ite(4,9,80)i File trend. c * Name trend * f *
* *
* Usae void trendIl *
* *
* Prototype *n
* *
!1, t.aijft 1l,11IloIgatilitIbi *])l tie I i I.,,I. I I! Peturn none *
* *
* Cal!I trenddraw *
* *
Cal!id by dijplayvalue * f *
*. *
K***+***t-***#****f****************f********/ #include <(trendw.h) extern int systodiastl evtern int clrcealib+lag; erterr +Ioat meant void trend() void trend draHwt(lnt, int, Int)l tatic x - TREND-XII static int oddval01 int mean valI Int i If (x -- TRENDX2) x - TREND-XII c r-01 for fi1l; 1<5( 1++) /* clear window for trend display*l/ i+ (<x+t < TRENDX2) draw_line(x+itTRENDYIAL,x+iTREND_Y2-22i clr - 1; $4 tcalib_flag9 = II t draw_IIne(x,TREND_Yl+l,x,TRENO_YZ-2); caltbflia - 01 if <odd.val *- 0) trend_draw(O, x, syStO); oddval - 1; else trend_draw(l, x, diast)I Oaddvai - O; mean v!I * MeanI trend_draw{2, x, me&n_vall x ++; *, tt. rwr7trA7wrtSrwSrrrrrJrtr:kP XS*,*1tgtt f Fil trenddr. * * Flae trend draw *
* *
v* r Usage void trenddraw * * i(tnt num,int xint val) *
* *
* Prototype in trendw.h * **
Description Print blood pressure *
* trend. *
* *
* Return none * I* Calls draw_ line *
* *
* Called by trend *
* *
* *
Ninclude <trend:w.h> extern int clre void trend_drawtint num, int x, int value) static int yt31 - <0,0,0); int nextyl clh 1; rnexty - TRENDY2 value/3; if (nexty<TREII_ YI) nexty-TREND YI; i+ (nexty>TREND_Y2) nextyTRENDY21 i+ (ytnum3 -n o) yúnum] - nextyl draw_lineCx,ytnum3,x+2,nexty)i; yCtnum3 - nexty; ) Ire WORK_MODE.C * ll^ t-orl'mode - acquires * z pr rrcesses. and displays * *X converted data. * t * Y Kis7e vuid.Jrkmode(; *
I *
K r.mtyp. ir, cnlbp.h * t -* DeSeription acqaire data from sensaor* * process it, display th- * e results graphically and * YK hnuterically. * * Pt.rn value none * w * r Ca!ls smnoth data * K drdplay_value * clrc new fartort * 1jr t t e_- -esu I t5
I *
* C11ied b./ main - * r* oincld-e <iport.h> eilv4 +unct.h -,rsrn jt [lO], mvax,*mJn,maxcounter,aftercal bl _rin, maa-_cc,min_acc,endcalibration; or a 'It y_level; n t s tIr 1_mnde) ms tamoothdata(; int i,point; 1 t!er. dcal ibrat ion) stftrtcnibpt)l far (iOI 1<4; i++) 1* Read the firet five samples +rom the *{ A[il- inportb(IFPORT)I /* sensor. */ for (i-1; i<-60; 1 i+) /I For tli to 60 do *: f /W1* { */ polrt=smonthdata(); /* Enter a new sample and smooth it, *' MAnrl11_O0F(point,min); * */ ma:MAXOF(pointmax){ If i%' == O0 /* Display every third sample. */ displayvalu- (pointl /* *' ) {* > *r ma-_-cc - mn"_acc + maxi Mtl aarc t-in-cc * mini epxcounter++l /* calculations. * 9'0toay 70,20);. / Go to clock window. * CI.OCKIl) /* Display current time. */ if tifterrallb) /I If after calibration then calculate */ talc new {actor)il /* the new factur of systolic t diastolic.*/ )1 Ifs* el.d of work mode / b vv y vxNK KXFXKKI*I EkKXXKXXAX'IX ry rlb, -} i. I - r - r rN1 *,n. *z*> I - I 4niyt tK results nurnerically. * * U lsag void writeresultsl; *
* *
* Defcription displays numerical res- * { ults in tie appropriate * F places or, the screen. * ti * t Peturn value none *
*L *
} Calls 9otoxy *
* *
* CalleJ by workmode *
* *
*****************K**********K ****K****** i extern int maxmlmaxcounteralarmns Jtchmaxt! =.xtern int maxacc, minaccg extern int prevmaxacc, prevminacc, prev maxcounterl e-tern int systo,diast, heart_phighsys; extkrn float systolic,diastolic,meanl e +erl flout factormsl v3id ttriteresults() void gotoxy(int,intl; Int lmeani Max max_acc/max_counter; min - ninacc/maxcounter{ Systo = systolic + factors*(max - maxill /* Syst - syst_factor * my% tiFrort sensorl *1 diast - systolic + factor_s*(min - maxili 1* Diast - diastfactor * d iast(from mensorl*! max * Qg min - 300; iz i(alarmswitch> L (max ≥ high_sys) /{* If systolic over the aystolic.high I imit*t beep(9,76)1 /* turn on alarm system. * gotoxy(71,2); printf'"%3d',systoli /* Numerical display of systolic. *1 9oto:yt71,7]1 printf(1%3d',diastl; /* Numerical display of diastolic. * gcotoxy(71, 12) t imean * mean; printfl<%3d", imean); /* Numerical display of mean. * otoxy(71,1711 pr-intfl(%3d", heart_p)g /* Numerical display of pulse rate. * prev max acc - Max_-accl prevmin_acc minacct Frevmaxcounter - max counterl' max_&cc - 01 max_ou'nter - 0O IVIfi ctc - ON File Start c.c * I Nam- stort_cnlbp - starte hoast* % in rt.ihbpnumunirAtlnn..IF x M * II"i.'l vfti.1 qtlate. tpr *- i t I I Protntype i Incitc.h *
* *
* Description main caller for hoast to *
iKF cntbp communication drIv-* * ers and protocol. *
* *
* R*turn value none *
* *
* Calls com_setup * * c-Snd mus * * get_m * *.9-t_rs9g * * disp_cal_res *
* *
* Called by main (casS.c module) *
* *
Hinclude <do4.h> #include <logic.h> e-tern int af tercaib,cal ibfl-g, endcalibrationl void startcnibp<1 { int Il long n,ml struct time tmi if (endcalibration) { Settimet&tm)i com_uetup()l 1/* etup communications at 9600,n,8,l *1/ ftercalib - 1i /* initialize flag *1 prepare_msg(1l) /* prepare START command to cnibp *1 send_msg(l; /* *end the command to cnibp */ end_calibratton - FALSEI whil. (end_calibration -- FALSE) endcalibration - get-m(oil /* pressure. */ if tendcalibration) prepare_msg(18I) /* prepare DATA REOUEST command to cnibp */ *end.msgi)i /* send the Command tg cnibp *1 getmmgt)il I* receive calibration data from cntbp */ disp_cal_res()l l* display data on screen * calib_flag9 1l; mettimetktm>; /* just for cal-stop version */ ) 1K K #R*# K KK*t*#**3f****fi*K*#***KK WI#**flfi***** File comset.c * rnte cnm setup setup com * Y pi.r ameters. *
K *
r 1ISi. void comsettpi( * t *
* Description setup communications at *
* 9600,n,1,i. *
* *
* Returr, value none *
* *
Calls none *
*F *
* Called by startcnibp * - Ninclude (dos.h) tinclude <regist.h> vold commsetup() t otUtpor.tb(LCR,Ox80); /* set DLAB - ú outportb(lER,OxO0); 1* set Divisor Latch LSB (DLL> ta 0 outportb(RBR,12); /* set Divisor Latch MSS (DLM) to 12 *1 oautportb(LCR,OxO3)i t* met B bits, I stop bit no parity *1outportbER reset Intrrupt Enab Restr outpcrtb<IER,O>g 1* remet Int.rrupt Enable Regimter yfl*+ **y********4f**************I*t***f**** K File Send_msg.c * * Name send_ms9 - RS232 output * W> driver * * K Useee void sendmg() *
* *
* * Description driver for sending mes- *
* msages over the serial * * communication port. *
* *
* Return value none *
* *
* Colis none *
* *
* Called by start_cnibp *
* *
Ninclude <to.h> extr-n char ms[gt8l void send4msg() int tj1 {or i1-OI 1<71 1i+*) /* loop {or sending 8 bytes of message *1 write(3,tmsg + i),}l) /* TXing the bytes via RS232 port *1 for(j-O; j(<400; J++)l /* delay loop for syncrontzation *1 I tz 'ît>)<xaoait ! tIuawu'. * 'S%.î>*%u; Jd 1{2t 'Ti) xo-o4 I {Z' TC).<xoo6 ) (IseJ-- t-Odslp P10oa Id-lJt.q lu! uJ'Dxa gUé@ntO:w p:Tll-ASIv i+ U441Xe
I*********** "***************************;
sw=--3dls Zq pal' *
* *
* euou 5et3 *
* *
*.uauou *nie^ uJn *
* *
uo* l*X<dl;pu*od s *,uuIelu< *tql UO eulnuàJ * tJe;ltJq;t-z u<uîdup uo:; d;J:s. *
* *
* q'suwt-o. ul dXIoGoad * * f * ()9s--i-dutp p!o^ aCes *
* *
* uws1j"4 uofl-JcqItwz * selds5p - s*4-tje-dsip tP114 i *6=0 tro-ú59p,1 td f
6Z98ú9Z
*.............. AXAA WW
p Fi!e getu.c * * flame 9et_m reads real time * * cuff pressure.- *
* *
* Usage Snt get_m(> *
* *
* Description reads real time cuff *
*, pressure. *
* *
* Return value TRUE or FALSE * * * Calls nonc *
* *
* Called by startcnibp *
* *
************************************** A*
Vinclude <dos.h> fInclude <logic.h> êrclude <regist.h> int get_ml) rharChi static int trit9 flag-O; whilr (niportb(l.SPI L OxOl)I t* while bit O of Line Control Register */ outportb(MCR,OxOO)I 1* is on, disable DTR or RTS C, clI - inportb(PBRi /i* get character form e'eceive buffe? if (tri 9_{1g > 2 ch -= 131(t * 1if last 4 characters are 919191CR' *1 tri_9_4lag - O; / * reset +lag Sndicating 3 '9 s *f return(TRUEII /* terminalte caller's while loop k, if (Ch -= 571< t* count successive '9ms *1 tri_Vflag*+l prtntil^"tri_9_.flag)} / * a necessary oddity *1 el*se /* if no successive 9''s reset flag *f tri_9.fleg - O outportb(MCR,OxOZl i * set RTS *1 I returntFALSEII t* walt for next character )' I K'**ai;+ *******KKse.***l**K*KK|tl*KK*x File prep_msg.c * Nmne prepare_asg prepares * IF a message for tranmi- * I mssion to cnibp. * Kt * * Usage void preparemsg(int in)* If *
* Description prepares a message for *
* transmisslion by setting * *$ the proper *equence of * K characters of a comm&nd.*
* *
* Return value non *
* *
* Calls none. *
* *
* Called by startcnibp *
* *
*K***K* X f***K* ***K KK*K******tt X****i ** 1*1XX-
*xtPrn char ms9Gt8i vold prepare_msgtfnt in) It I; chali chs[lB3L2]<COx44,Ox37}, {Ox44,Ox3B), <Ox44,Ox39), (Ox44,0x41}, (Ox44, 0x42), iOx44, 0x43}, (Ox44,0x44), (Ox44,0x45), (Ox44, 0x461, COx44,OCx37), 0Ox44, 0x38) tOx44, 0x39, (Ox44, 0x4}, <Ox44,0x42}, <Ox44,Ox43}, <Ox44,Ox44>), <Ox44, 0x45}, (Ox44,0x46}); cher cmdcle3r2]m{O0x30,Ox31), {Ox30,0x32}, <Ox30, Ox33), Ox30,Ox341, <Ox30, 0x35, (Ox300Ox36), (Ox30cOx37), *Ox30, Ox38}, Ox30, Ox39}, tOx31'Ox31), cOx3l&Ox32},
<0*31,0*32>,
óOx3l0Ox33), (Ox31,0x34), <Ox31,0x35), (Ox3tO0x36}. <Ox31, Ox3?7), <C<3l}, 0x38>}; N prf ti.- aprapriate characters in ms9 * *Y*r If**********fi*************t************i if <ir. > O}{ us9tI] * cmdtin - 13ú03; ams912] cmdtin - 13C124 ueste t - chutin - l)O[ u'33t63 - chutin - litll 4S*S*Sf *******+**t ****W-******a*"******** * FIle get_mnsg c * H a-me getmsg RS232 input * * driver. * * U L'-ge int 9et_m() *
IF *
* Dcription driver for receiving * *,messages over the'serial* * communication port. *
* *
X Ret+rn value O if RX succesaful. * * NOSTX If no text RXd *
* *
* Calls none *
* *
* Called by start_cnibp *
* *
**>*********k****8**X********J* 5***fi****I Ninclude 4dcs.h> Ntnclude 'time.h> Minclude <registlh> Ninclude <logic.h> o{include <text.h> éinclude <hartw.h> eterni f!oat systolicdiastolicmean; extern Int heartp; e':tern int clr; extern int prev.maxacc, prev_min_acc, prev_max_counter; int getms(gt) int ref_upref_bot; int Ijdone,re4; char rmsgt37]3a-LOl; Int line; long timel; char *strnow; for (i-Oair80i++l aCl ' 321 done - FALSEI /* set initial condition for whi le loop */ i O{ /* initialize message index */ while(!done){ /* while no ETX receive characte rs *1 ifCinportb(LSR) & OxOl)( /* if bit O of Line Control Regi ster on*/ outportbtiICROxOO)l /* no DTR or RTS *1 rmsgtil = inportb(RBR)I /* read cha-acter from R eccive Duffer *1 if(rmsgcti] -- ETX) /* if ETX terminate while loop *1 done - TRUEI *++i /* otherwise incremel.t m essage index *1 outportb(MCR,Ox02)1 /* met RTS )
I **********4.*********************4**
* 4tsplay recelved data on scraeen * systolic 100*rm.sg9132-48) 4 10*irmmgú142-48) +(rmugtl5I-48)1 dfl&tolic - 100 * (rmugtl6] - 481 + 10 * (rmsgtl7l - 481 + (rmsgt[IS - 49a mean - 100 * irmsgt191 - 48) + 10 * (rmsgt203 - 481 + trmsg[2i - 48); heart_p - 100*trmsgt243-48) + 10ltrmsgC2t2-4BI 4(rmsg9263-48)1 for tJ1l; I<HARTXII 1++) f* cloan previous marks. on screen *1 clr-Ot draw_line(tHARTYI1,IHARTY2)1 *Clr11 ra.,1* InetHARTX- 1,HARTYI,HART_X1- IHART_Y2)1 re_ up - HAPT_Y2 (prv_max_acc/prev_maxcounter)/HARTSCALEI re4_bot - HART_Y2 (prev_min_acctpre-vmaxcounter)fHARTSCALEi ref-systalici line-ref_up/10 gntoxy i, line; pr tntf (%3d',refI; refdiastol ici linesrefbot/Io + 21 gotoxy(,l ne> printf<1 3d",refl I draw_line(3,sref_upHMART_Xl-Irefup); draH_line3, ref_bot,HART_Xl-l, ref_bot); tO 0]' 10; timet:timel)lg %trnow - ctime(ktimel); fnr tis1l térci i++) [ti1 - *(strnow+1O+i11 al71 * rtns[913]; tl18) * rmsgtl41; a[lt II rmsgt5II; 281 - rmug[ll; C2ç9 rmsg[20]i at303 rmtsg21]i [391 rmsg9l61; st402 - rmsgtl7l] aS411 rumg[i81] aC50] * rmsg9243I ar5] rmsgt25S; a[521 - rmagt261i zt^OZ0- 361 i (bfoprint(2,0.0 - Ox9O) writet4,&t801 returntOII _bss Fs m.rent stack 'stack'
DW 128 DUP('7
_has ends dCg oup group _data,_bss * a tqA.'ca,. t asrt itrb db "0123456289" h M'i dw s, 6 t.i vu dlq ?it lecond dw ? 'S; -sep-r-t db,' ten db 10 thu dw 1092 eisht db 18 urpaos dw 163fh toprint db 1 dupC'd')) '*' _data erfd -printstring mac",o mov ah,9 int 21h endm t------*-=-.=....
......................................................,.....,.,,....._..DTD: I Code segment containing the main and subroutines.
I =ats$=t*=s=s=s===a=ssm=rs=ssss= a===ts==w==.==aa===ss===---=-=r ---= _tenxt.!SEGHENT PUBLIC assume cs:_text,ds:dgroup public _CLOCK CLOCK proc near mOv ax,dgroup;establish data segment Mov dsax : blznl, cursnr and get time trom system clock gt_t i mre: mov ch,Offh;transfer cursor blankinq code mov ahl t- to BIOS ir t lOh mov ah,O iget time of day int lah iusing BIOS lec bxasciitab 1get address of translation tabl e t- translate retrr-,ed value for hour into ASCII tl 1h1: tuv escx tget value for ihour in AX div ten -divde by 10 to convert to dectun xlat asciitab; translate to ASCII xchg *hal lexchange AH and AL xlat asciitab Itrnaslate the remainder to ASC] xch9g al,ah Iget back in riglht order 4or dis play mov hourax;save value for display : tr^t."rt- r-tutl rE' val u fr,. fil. tets à.to AS 1l :4. mo x <dx --r dx1c,dX 41v tha div ten lit *asciitab aljahiha > h a amaca1..tab *'hg I Ijh Mov tl*flutex I. triprsltte returned value for seconds into ASCII Infv xnd>x 4iv eight -or ahah
4iv ter.
xlat ascii tab Ichg ahal xlIat asciti tab xchg aI,ah Mnov secondax raov dx,cur_pos ov ah,2 int loh isp_h: rov ax,hour push ax Ira bxtoprint mav tbxl,al Inv dx,bx _print_string pop ax xch3 ah,-l lee bx,toprint mnv tbx], a& Mav dxbx _printstrin9 1*a dx,separat _pr int_str itn MIOv axtnute push ax lea bx,toprint mov tbx],al mnv dx,bx _print_striln9 pop *x xchg ahal lea bxtoprtnt mov tbx3,al mov dx,bx _printstring l-a dx,5-p-rat _print_str ing 4 ',.p.F mnv Mx, Second p'joih Rax mov [bx],al mov dx,bx _printstr i n pcp ax xc1.9 ah'al ] 3 bx,tcpr i nt m-v tbxl,al IftrlV J X m [3 X rfir nt_tr tin ret Ci['OCk ondp *ndp e =5= =. = = = ==H===D=_== =g _text. l'iS l; [In

Claims (13)

REVENDICATIONS
1. Appareil de surveillance non invasive continue de la pression sanguine, caractérisé en ce qu'il comprend: OS un moyen transducteur optique (10) servant à détecter une information relative 'à la quantité de sang qui circule dans un conduit sanguin; et un moyen (30, 32, 34, 36, 38, 44) qui répond au signal de sortie du moyen transducteur optique en produisant une indication de la pression du sang systolique et de la pression du sang diastolique.
2. Appareil selon la revendication 1, caractérisé en ce que ledit moyen indicateur qui répond au signal de sortie du moyen transducteur fournit des indications directes de la pression du
sang systolique et de la pression du sang diastolique.
3. Appareil selon la revendication 1 ou 2, caractérisé en ce que ledit moyen indicateur répondant à un signal de sortie du moyen transducteur calcule la pression sanguine moyenne en
intégrant le signal de sortie du moyen transducteur optique.
4. Appareil selon l'une quelconque des revendications 1 à
3, caractérisé en ce qu'il comprend également un moyen d'affichage (40) servant à afficher la forme d'onde du signal de sortie du moyen transducteur optique, si bien que la marche des valvules
cardiaques peut être détectée.
5. Appareil selon l'une quelconque des revendications 1 à
4, caractérisé en ce qu'il fonctionne en temps réel.
6. Appareil selon l'une quelconque des revendications 1 à
, caractérisé en ce qu'il comprend également un moyen (42) servant
étalonner le moyen in dicateur.
7. Appareil selon la revendication 6, caractérisé en ce que ledit moyen d'étalonnage comprend un manchon tensiométrique de
type électrique.
8. Appareil selon la revendication 6, caractérisé en ce qu'il comprend également un clavier (46) servant à introduire
manuellement des informations d'étalonnage.
9. Procédé de surveillance non invasive continue de la pression sanguine, caractérisé en ce qu'il comprend les opérations suivantes: détecter optiquement une information relative à la quantité de sang passant dans un conduit sanguin; et répondre au signal de sortie obtenu par l'opération de détection optique en produisant une indication de la pression du
sang systolique et de la pression du sang diastolique.
10. Procédé selon la revendication 9, caractérisé en ce que ladite opération de production d'une indication fournit des indications directes de la pression du sang systolique et de la
pression du sang diastolique.
11. Procédé selon l'une quelconque des revendications 9
et 10, caractérisé en ce que ladite opération de production d'une indication calcule la pression sanguine moyenne en intégrant le
signai de sortie de l'opération de détection optique.
12. Procédé selon l'une quelconque des revendications 9 à
11, caractérisé en ce qu'il comprend également l'opération consistant à afficher la forme d'onde du signal de sortie de l'opération de détection optique, si bien qu'on peut détecter la
marche des valvules cardiaques.
13. Procédé selon l'une quelconque des revendications 9 à
12, caractérisé en ce que ladite opération de détection optique
mesure le débit sanguin dans une artère.
FR8914604A 1988-11-07 1989-11-07 Appareil et procede de surveillance continue de la pression sanguine Pending FR2638629A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IL88305A IL88305A0 (en) 1988-11-07 1988-11-07 Real time non-invasive continuous blood pressure monitor

Publications (1)

Publication Number Publication Date
FR2638629A1 true FR2638629A1 (fr) 1990-05-11

Family

ID=11059394

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8914604A Pending FR2638629A1 (fr) 1988-11-07 1989-11-07 Appareil et procede de surveillance continue de la pression sanguine

Country Status (6)

Country Link
DE (1) DE3935939A1 (fr)
FR (1) FR2638629A1 (fr)
GB (1) GB2226131A (fr)
IL (1) IL88305A0 (fr)
IT (1) IT1236648B (fr)
NL (1) NL8902746A (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4109643A (en) * 1976-06-17 1978-08-29 Hewlett-Packard Company Perfusion meter
FR2524792A1 (fr) * 1982-04-13 1983-10-14 Fenestraz Louis Procede de mesure de valeurs cardio-vasculaires et dispositif pour sa mise en oeuvre
US4475554A (en) * 1980-06-19 1984-10-09 Nederladse Centrale Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Noninvasive continuous blood pressure meter
US4869262A (en) * 1987-02-02 1989-09-26 Pulse Time Products Limited Device for displaying blood pressure

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE790454A (fr) * 1971-10-23 1973-04-24 Philips Nv Enregistreur de grandeurs physiologiques
GB1538695A (en) * 1977-01-17 1979-01-24 Biotron Medical Products Ltd Method and apparatus for continuously monitoring systolic blood pressure
IL64421A0 (en) * 1980-12-05 1982-03-31 Cousin Bernard M Device for picking off and evaluating a pressure,in particular a pressure of a fluid
EP0160994A3 (fr) * 1984-05-10 1987-02-04 Warner, Sylvia Appareil de surveillance de paramètres relatifs à la circulation sanguine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4109643A (en) * 1976-06-17 1978-08-29 Hewlett-Packard Company Perfusion meter
US4475554A (en) * 1980-06-19 1984-10-09 Nederladse Centrale Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Noninvasive continuous blood pressure meter
FR2524792A1 (fr) * 1982-04-13 1983-10-14 Fenestraz Louis Procede de mesure de valeurs cardio-vasculaires et dispositif pour sa mise en oeuvre
US4869262A (en) * 1987-02-02 1989-09-26 Pulse Time Products Limited Device for displaying blood pressure

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JOURNAL OF CLINICAL MONITORING, vol. 3, no. 4, octobre 1987, pages 282-287; R.D. BOEHMER: "Continuous, real-time, noninvasive monitor of blood pressure: penaz mehtodology applied to the finger" *
MEDICAL & BIOLOGICAL ENGINEERING & COMPUTING, septembre 1985, pages 459-465, Stevenage, GB; K. YAMAKOSHI et al.: "Long-term ambulatory monitoring of indirect arterial blood pressure using a volume-oscillometric method" *

Also Published As

Publication number Publication date
GB8925013D0 (en) 1989-12-28
IT8922250A1 (it) 1991-05-03
IT1236648B (it) 1993-03-25
IL88305A0 (en) 1989-06-30
NL8902746A (nl) 1990-06-01
GB2226131A (en) 1990-06-20
DE3935939A1 (de) 1990-05-17
IT8922250A0 (it) 1989-11-03

Similar Documents

Publication Publication Date Title
CN107735019B (zh) 利用多个ppg传感器的传感器系统和方法
RU2648029C2 (ru) Устройство и способ измерения кровяного давления
JP5745265B2 (ja) 信号処理装置、タッチパネルユニット、情報処理装置および信号処理方法
US4735212A (en) Multiple site fiber optic pressure transducer
CN104335139B (zh) 手势控制
JP2013523362A (ja) 生体組織における生物学的、化学的、及び/又は生理学的パラメータを決定するための装置及び方法
CN106955090B (zh) 诊脉装置、气体检测装置、模拟脉搏装置和中医诊疗系统
CN102170823A (zh) 血压信息显示装置、血压信息显示系统、血压信息显示方法及存储有血压信息显示程序的存储介质
CN107004078A (zh) 基于阻抗测量的访问控制认证
CN107405074A (zh) 皮肤测量设备及其控制方法
TW200819109A (en) Finger-wearing type pulse-feeling apparatus
CN106123933A (zh) 一种混沌光纤环衰荡传感装置及方法
CN106095340A (zh) 测量仪数据存储方法和装置
Sirkis et al. Fiber sensor for non-contact estimation of vital bio-signs
KR101448932B1 (ko) 스마트폰을 이용한 터치 스크린 피부 상태 측정장치 및 피부 상태 측정장치의 인터페이스 방법
CN108324286A (zh) 一种基于pca-narx校正算法的红外光无创血糖检测装置
FR2638629A1 (fr) Appareil et procede de surveillance continue de la pression sanguine
CN102013135A (zh) 远程诊疗售药机
CN207654141U (zh) 诊脉装置、气体检测装置、模拟脉搏装置和中医诊疗系统
CN207867530U (zh) 信号处理装置及系统
FR2704957A1 (fr) Dispositif de saisie de données destiné à être fixé à un appareil multimétrique électronique mobile, notamment un multimètre portatif.
KR102526951B1 (ko) 전자 장치에서 생체 정보 측정 방법 및 장치
De Mul et al. A semiconductor laser used for direct measurement of the blood perfusion of tissue
CN110025300B (zh) 基于dfb光纤激光传感技术的生命体征监测装置及监测方法
KR20170130370A (ko) 정서 감지 스마트 단말기 및 그 감지방법